diff --git "a/00python\347\232\204\346\225\260\346\215\256\347\261\273\345\236\213.py" "b/00python\347\232\204\346\225\260\346\215\256\347\261\273\345\236\213.py" new file mode 100644 index 0000000000000000000000000000000000000000..82107e44771c72f8e43314feae3f1610a6b43d47 --- /dev/null +++ "b/00python\347\232\204\346\225\260\346\215\256\347\261\273\345\236\213.py" @@ -0,0 +1,25 @@ +""" +https://www.runoob.com/python3/python3-data-type.html + +python的标准数据类型 +python3中常见的数据类型有: +number数字 +string字符串 +bool 布尔类型 +list 列表 +Tuple 元组 +set 集合 +dictionary 字典 +""" + + +""" +Number数字 +Python3 支持 int、float、bool、complex(复数)。 +在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。 +Python3 支持 int、float、bool、complex(复数)。 + +注意:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。 + +在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。 +""" \ No newline at end of file diff --git "a/01\350\276\223\345\205\245\345\215\212\345\276\204\350\256\241\347\256\227\345\221\250\351\225\277.py" "b/01\350\276\223\345\205\245\345\215\212\345\276\204\350\256\241\347\256\227\345\221\250\351\225\277.py" new file mode 100644 index 0000000000000000000000000000000000000000..c9cf018d77ee60376a4398dcdfd96ea1821b9b94 --- /dev/null +++ "b/01\350\276\223\345\205\245\345\215\212\345\276\204\350\256\241\347\256\227\345\221\250\351\225\277.py" @@ -0,0 +1,59 @@ +""" +多行注释 +""" +''' +多行注释也可以是三个单引号 +''' + +# 单行注释 + +# 全局变量 +PI = 3.1415926 + + +def input_num(): + """ + 校验输入的内容是否可以正确转换成数字 + :return: + """ + while True: + # 提醒输入 + radii_str = input("请输入圆的半径: ") + # 使用异常处理 + try: + radii = float(radii_str) + return radii + except TypeError: + print("请输入有效数字") + + +def get_perimeter(radii: float): + # 计算圆的周长 + return 2 * PI * radii + + +def get_area(radii: float): + # 计算圆的周长 + return PI * radii * radii + + +# 主函数 等价Java main方法 +if __name__ == '__main__': + # 提示输入半径 + # radii = input("请输入圆的半径: ") + # input函数接收到的数据都是字符串的 + # radii = int(radii) + + radii = input_num() + # 计算圆的周长 + round_num = get_perimeter(radii) + # 计算圆的面积 + area_num = get_area(radii) + + # 输出 + print("圆的周长:", round_num) + print("圆的面积: ", area_num) + + # 通过占位符实现保留两位小数 + print("圆的周长:%.2f" % round_num) + print("圆的面积: %.2f" % area_num) diff --git "a/02\350\276\223\345\205\245\345\271\264\344\273\275\346\234\210\344\273\275\350\256\241\347\256\227\345\244\251\346\225\260.py" "b/02\350\276\223\345\205\245\345\271\264\344\273\275\346\234\210\344\273\275\350\256\241\347\256\227\345\244\251\346\225\260.py" new file mode 100644 index 0000000000000000000000000000000000000000..67684213101204965f5fcadd072bd91c8939e8d2 --- /dev/null +++ "b/02\350\276\223\345\205\245\345\271\264\344\273\275\346\234\210\344\273\275\350\256\241\347\256\227\345\244\251\346\225\260.py" @@ -0,0 +1,40 @@ +""" +需求: 输入某年的某月,计算当月有多少天 +分析: + 1 3 5 7 8 10 12 : 31天 + 4 6 9 11 : 30 天 + 2 : 闰年29天 平年28天 +农历闰年的规则: 4年一闰 百年不闰 + case1: 年份%400 == 0 必定是闰年 + cae2: 年份%4 == 0 && 年份%100 != 0 是闰年 AG: 1900年不是闰年 +""" + +# if __name__ == '__main__': +# year = int(input("请输入年份:")) +# month = int(input("请输入月份:")) +# # 天数 +# days = 0 +# if month in [1, 3, 5, 7, 8, 10, 12]: +# days = 31 +# elif month in [4, 6, 9, 11]: +# days = 30 +# else: +# if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0): +# days = 29 +# else: +# days = 28 +# +# print("%d年%d月: %d天" % (year, month, days)) + +# 方法2 +if __name__ == '__main__': + year = int(input("请输入年份:")) + month = int(input("请输入月份:")) + days = 0 + # 1 2 3 4 5 6 7 8 9 10 11 12 + day_list = [31, 28, 31, 30, 31, 30, 30, 31, 30, 31, 30, 31] + if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0): + day_list[1] = 29 + print("%d年%d月: %d天" % (year, month, day_list[month - 1])) + else: + print("%d年%d月: %d天" % (year, month, day_list[month - 1])) diff --git "a/03\347\273\237\350\256\241\345\255\227\347\254\246\344\270\262\347\232\204\346\225\260\351\207\217.py" "b/03\347\273\237\350\256\241\345\255\227\347\254\246\344\270\262\347\232\204\346\225\260\351\207\217.py" new file mode 100644 index 0000000000000000000000000000000000000000..961bc9776d0eba5e843b403d41930f554276582d --- /dev/null +++ "b/03\347\273\237\350\256\241\345\255\227\347\254\246\344\270\262\347\232\204\346\225\260\351\207\217.py" @@ -0,0 +1,23 @@ +if __name__ == '__main__': + str = "DFGHasngaslkgJINMKGL12345!%^&&@遍历美国i每一个字符" + upper_char_num = 0 + low_char_num = 0 + number_char_num = 0 + chinese_char_num = 0 + other_char_num = 0 + for char in str: + if char.isupper(): + upper_char_num += 1 + elif char.islower(): + low_char_num += 1 + elif char.isdigit(): + number_char_num += 1 + elif '0x4E00' <= char <= '0x9FA5': + chinese_char_num += 1 + else: + other_char_num += 1 + +print(" 大写字符%d个\n 小写字符%d个\n 数字%d个\n 汉字%d个\n 符号%d个 " % + (upper_char_num, low_char_num, number_char_num, chinese_char_num, other_char_num) + ) + diff --git "a/04\350\256\241\347\256\227\345\231\250\347\273\203\344\271\240\351\242\230.py" "b/04\350\256\241\347\256\227\345\231\250\347\273\203\344\271\240\351\242\230.py" new file mode 100644 index 0000000000000000000000000000000000000000..d7aada6dc06efc1c0ec5b092fbd8f48c5a9671ec --- /dev/null +++ "b/04\350\256\241\347\256\227\345\231\250\347\273\203\344\271\240\351\242\230.py" @@ -0,0 +1,16 @@ +if __name__ == '__main__': + num_1 = int(input("请输入第一个数字:")) + operation = input("选择运算符 + - * /: ") + num_2 = int(input("请输入第二个数字:")) + + num_3 = 0 + if operation == '+': + num_3 = num_1 + num_2 + elif operation == '-': + num_3 = num_1 - num_2 + elif operation == '*': + num_3 = num_1 * num_2 + elif operation == '/': + num_3 = num_1 / num_2 + + print("结果: %d" % num_3) diff --git "a/05\345\276\252\347\216\257.py" "b/05\345\276\252\347\216\257.py" new file mode 100644 index 0000000000000000000000000000000000000000..4a456bdf4ee1252cdbb011d62cc9420be68efa27 --- /dev/null +++ "b/05\345\276\252\347\216\257.py" @@ -0,0 +1,75 @@ +# if __name__ == '__main__': +# num = 1 +# total = 0 +# while num <= 100: +# total = total + num +# # print(total) +# num += 1 +# print("sum =", total) + +# 输入一个正整数,求出能被3整除的 还有包含3的 所有数之和 +# if __name__ == '__main__': +# num = int(input("输入整数:")) +# sum = 0 +# i = 1 +# while i <= num: +# if i % 3 == 0: +# sum += i +# elif '3' in str(i): +# sum += i +# i += 1 +# print("sum = ", sum) + + +""" +continue: 跳出本次循环 +break: 跳出整个循环 +""" + +# for循环 重点range函数 +# if __name__ == '__main__': +# sum = 0 +# # range(起始值,结束值,步长) 如果起始值是1可以省略 步长是1亦可以省略 +# for i in range(1, 20, 1): +# sum += i +# print("sum =", sum) +# +# total = 0 +# for j in range(10): +# total += 1 +# print("total =", total) + + +# range函数 +# 需求: 求三位数中58的最大倍数 +# if __name__ == '__main__': +# sum = 0 +# for i in range(999, 100, -1): +# if i % 58 == 0: +# print("三位数中58的最大倍数是:", i) +# break + +# 需求: 输入一个数字,判断是不是质数 +# 质数又叫素数 +# 质数只能被1和自身整除 +# if __name__ == '__main__': +# num = int(input("输入:")) +# chushu = 2 +# while chushu < num: +# if num % chushu == 0: +# print("可以被%d整除不是质数" % chushu) +# break +# else: +# chushu += 1 +# print("%d是质数" % num) + + +import math + + +def is_prime_number(num: int): + # 上面的需求 利用平方根 + for i in range(2, int(math.sqrt(num) + 1)): + if num % i == 0: + return False + return True diff --git "a/06\345\276\252\347\216\257\347\273\203\344\271\240\351\242\230.py" "b/06\345\276\252\347\216\257\347\273\203\344\271\240\351\242\230.py" new file mode 100644 index 0000000000000000000000000000000000000000..d4f089fdd4a7c2c88c3613b78786ea8f70df763c --- /dev/null +++ "b/06\345\276\252\347\216\257\347\273\203\344\271\240\351\242\230.py" @@ -0,0 +1,52 @@ +# 随机生成两个1000以内的不同的整数,计算两个数之间的质数之和 +# 打印乘法口诀表 + + +import math + + +def input_num(): + try: + return int(input("输入数字:")) + except: + print("非法数字") + input_num() + + +def is_prime(num: int): + for i in range(2, int(math.sqrt(num) + 1)): + if num % i == 0: + return False + return True + + +def get_prime_sum(): + num1 = input_num() + num2 = input_num() + _sum = 0 + if num1 == num2: + print("两个数一致,中间没有质数") + get_prime_sum() + elif num1 < num2: + for i in range(num1 + 1, num2): + if is_prime(i): + _sum += i + else: + for i in range(num1, num2, -1): + if is_prime(i): + _sum += i + print("%d和%d之间的质数和为: %d" % (num1, num2, _sum)) + + +def multiple_fun(): + num1 = 1 + num2 = 1 + for i in range(1, 10, 1): + for j in range(1, i + 1): + print(f'{j}X{i}={i * j}\t', end='') + print() + + +if __name__ == '__main__': + # get_prime_sum() + multiple_fun() diff --git "a/07list\346\225\260\346\215\256\347\273\223\346\236\204\347\273\203\344\271\240.py" "b/07list\346\225\260\346\215\256\347\273\223\346\236\204\347\273\203\344\271\240.py" new file mode 100644 index 0000000000000000000000000000000000000000..8c235c6d5b905d0d4ade91554af82f26988a4656 --- /dev/null +++ "b/07list\346\225\260\346\215\256\347\273\223\346\236\204\347\273\203\344\271\240.py" @@ -0,0 +1,55 @@ +# 定义 +list1 = [1, 2, 3, 4, 5] +list2 = [1, 2, [3, 4], 5] +list3 = [1, '2', 3, {'name': '张三'}] + +# 取值 +# print(list1[1]) +# print(list2[2]) +# print(list3[3]) + +# 修改 +list1[0] = 2 +list2[2][1] = 1 +# print(list2[2]) + +# 插入 +list1.append("尾插法") +list2.insert(1, "下标定位插入") +# print(list2) + +# python list +# 存储的数据没有type限制 +# 下标有两套 正序一份 倒叙一份 +# 最大的优势 支持切片 + +# list[起始值,结束值,步长] === in range(起始值,结束值,步长) +# 正序索引: +# 如果起始值从索引0开始,第一个参数可以省略 +# 如果结束值是集合的最后一位,第二个参数可以省略 +# 如果步长等于1,则第三个参数可以省略 + +list4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + +print(list4[2:9:2]) + +# list遍历 +# 方法一 for -- in ==取值 +for val in list4: + if val % 2 == 0: + print(val) +# 方法二 for -- in range() == 取索引 +for index in range(len(list4)): + if list4[index] % 2 == 0: + print(list4[index]) + +# 方法三 索引和值同时取 +for index, value in enumerate(list4): + print(index, end='\t') + print(value) + +# list常用方法 +# append insert extend 添加元素 +# remove pop clear 删除元素 +list4.remove(3) # 删除符合条件的第一个值 +list4.clear() \ No newline at end of file diff --git "a/08\351\232\217\346\234\272\346\225\260.py" "b/08\351\232\217\346\234\272\346\225\260.py" new file mode 100644 index 0000000000000000000000000000000000000000..c4a92c0ea0103160e8d5c0ec75cc7a5018c19013 --- /dev/null +++ "b/08\351\232\217\346\234\272\346\225\260.py" @@ -0,0 +1,24 @@ +# 生成10个 50-100之间的整数 --随机数 + +import random + +print(random.random()) +print(random.randint(50, 100)) +print(random.randrange(50, 100, 2)) + +for i in range(100): + print(random.randint(50, 100)) # 验证结果: >=50 and <=100 + + +def get_range_random(start, end, number): + numbers = [] + for i in range(number): + numbers.append(random.randint(start, end)) + return numbers + + +if __name__ == '__main__': + range_random = get_range_random(50, 100, 10) + range_random.sort() + random.shuffle(range_random) # 把集合打乱 洗牌的需求 + print(range_random) diff --git "a/09dict\346\225\260\346\215\256\347\273\223\346\236\204\347\273\203\344\271\240.py" "b/09dict\346\225\260\346\215\256\347\273\223\346\236\204\347\273\203\344\271\240.py" new file mode 100644 index 0000000000000000000000000000000000000000..c0b5cadf2289d53cbf908a63bcfa7ef38cb461ae --- /dev/null +++ "b/09dict\346\225\260\346\215\256\347\273\223\346\236\204\347\273\203\344\271\240.py" @@ -0,0 +1,28 @@ +# list 有序 可变 +_list = [] +# tuple 不可修改的list集合 +_tuple = () +# set 无序 不重复 +_set = {} +# dict 无序 不能重复的 {key-value}集合 就是Java的map json格式 +_dict = {} + +# 定义dict +dict1 = {'name': '张攀', 'age': 19} +# 取值 +print(dict1['name']) +print(dict1['birth']) # 没有key 会报错 + +print(dict1.setdefault('birth', None)) # 没有 给个默认值 +print(dict1.get('name')) + +# 遍历 +for key in dict1: + print(dict1[key]) + +for key in dict1.keys(): + print(key, dict1[key]) + +for (key,value) in dict1.items(): + print(key,value) + diff --git "a/10\345\207\275\346\225\260\347\261\273\346\250\241\345\235\227\345\214\205.py" "b/10\345\207\275\346\225\260\347\261\273\346\250\241\345\235\227\345\214\205.py" new file mode 100644 index 0000000000000000000000000000000000000000..d60101a34816fc85571dc59b98f11a5036469125 --- /dev/null +++ "b/10\345\207\275\346\225\260\347\261\273\346\250\241\345\235\227\345\214\205.py" @@ -0,0 +1,34 @@ +""" +package 包 +module 模块 +class 类 +function 函数 +""" + +# 面向对象编程 +PI = 3.1415926 + + +# 类 +class Round: + # 构造函数 + def __init__(self, radius: int): + self.radius = radius + self.perimeter = 0.0 + self.area = 0.0 + self.get_area() + self.get_perimeter() + + def check_input(self): + pass + + def get_area(self): + self.area = PI * self.radius * self.radius + + def get_perimeter(self): + self.perimeter = PI * 2 * self.radius + + +if __name__ == '__main__': + # 实例化类 + round1 = Round(10) diff --git a/list/__init__.py b/list/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..54c7a24e2f0d3ad76b60fbe65832045800c2dcea --- /dev/null +++ b/list/__init__.py @@ -0,0 +1,11 @@ +_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] + +# print(_list[2:]) +# print(_list[:2]) +# print(_list[0:2]) +# print(_list[0:2:2]) + + +print(_list[-1]) +print(_list[-3:-1:1]) +print(_list[-1:-3:-1]) \ No newline at end of file diff --git a/poker/__init__.py b/poker/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/poker/poker.py b/poker/poker.py new file mode 100644 index 0000000000000000000000000000000000000000..044f9340d8078869f08e2f53a0bf3a5451a131d0 --- /dev/null +++ b/poker/poker.py @@ -0,0 +1,53 @@ +# 需求: 实现扑克牌游戏 + +import time + +# 扑克牌的基础数据 +POKER_DICT = { + 'number': ['3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A', '2'], + 'type': ["♠", "♥", "♣", "♦"] + +} + + +class Poker: + def __init__(self, poker_number: int = 1, ): + self.poker_number = poker_number + self.poker_list = [] + + def build(self): + # 生成扑克牌 + # 定义一个poker数字 + for number in POKER_DICT['number']: + for type in POKER_DICT['type']: + self.poker_list.append(type + number) + print(self.poker_list) + + def start(self): + print("正在启动游戏......") + time.sleep(3) + print("游戏启动成功") + while True: + print("=" * 30 + "poker GAME START" + "=" * 30) + input_type = input("开始游戏 【1-生成牌 2-打印牌 3-发牌 4-洗牌 5-整理牌 6-退出】:") + if input_type == '1': + print("正在生成扑克牌......") + time.sleep(3) + self.build() + print("生成扑克牌完成") + elif input_type == '2': + pass + elif input_type == '3': + pass + elif input_type == '4': + pass + elif input_type == '5': + pass + elif input_type == '6': + pass + else: + print("指令错误!!!") + + +if __name__ == '__main__': + obj = Poker() diff --git a/poker/poker1.py b/poker/poker1.py new file mode 100644 index 0000000000000000000000000000000000000000..548e6a9a38606444bc3cce3c776b4f8283316c29 --- /dev/null +++ b/poker/poker1.py @@ -0,0 +1,65 @@ +# 需求: 实现扑克牌游戏 + +import time + +# 扑克牌的基础数据 +POKER_DICT = { + 'number': ['3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A', '2'], + 'type': ["♠", "♥", "♣", "♦"] +} + + +class Poker: + def __init__(self, poker_number: int = 1, ): + self.poker_number = poker_number + self.poker_list = [] + + def build(self): + # 定义一个poker数字 + poker_number = [] + for number in range(13): + poker_number.append("%02d" % number) + poker_type = ['00', '01', '02', '03'] + # 生成扑克牌 几副牌 >> 数字 >> 花色 + for pair in range(self.poker_number): + for number in poker_number: + for type in poker_type: + self.poker_list.append(number + type) + print(str(self.poker_list)) + + def print_all_poker(self): + # 打印所有的牌 + for one_poker in self.poker_list: + print("%s%s" % (POKER_DICT['type'][int(one_poker[2:])], POKER_DICT['number'][int(one_poker[:2])])) + + def start(self): + print("正在启动游戏......") + time.sleep(1) + print("游戏启动成功") + while True: + print("=" * 30 + "poker GAME START" + "=" * 30) + input_type = input("开始游戏 【1-生成牌 2-打印所有牌 3-发牌 4-打印玩家牌 5-洗牌 6-整理牌 7-退出】:") + if input_type == '1': + print("正在生成扑克牌......") + time.sleep(1) + self.build() + print("生成扑克牌完成") + elif input_type == '2': + self.print_all_poker() + elif input_type == '3': + pass + elif input_type == '4': + pass + elif input_type == '5': + pass + elif input_type == '6': + pass + elif input_type == '7': + pass + else: + print("指令错误!!!") + + +if __name__ == '__main__': + obj = Poker(1) + obj.start() diff --git a/poker/poker2.py b/poker/poker2.py new file mode 100644 index 0000000000000000000000000000000000000000..57704913146d7df2a5d1f9f5a52ee7e47be862fa --- /dev/null +++ b/poker/poker2.py @@ -0,0 +1,88 @@ +# 需求: 实现扑克牌游戏 + +import time + +# 扑克牌的基础数据 +POKER_DICT = { + 'number': ['3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A', '2'], + 'type': ["♠", "♥", "♣", "♦"] +} + + +class Poker: + def __init__(self, poker_number: int = 1, person_number: int = 4, ): + self.poker_number = poker_number + self.poker_list = [] + # 定义集合存储玩家的牌 + self.person_number = person_number + self.person_poker_list = [] + + def build(self): + # 定义一个poker数字 + poker_number = [] + for number in range(13): + poker_number.append("%02d" % number) + poker_type = ['00', '01', '02', '03'] + # 生成扑克牌 几副牌 >> 数字 >> 花色 + for pair in range(self.poker_number): + for number in poker_number: + for type in poker_type: + self.poker_list.append(number + type) + print(str(self.poker_list)) + + def print_all_poker(self, print_list: list): + # 打印所有的牌 + for one_poker in print_list: + print("%s%s" % (POKER_DICT['type'][int(one_poker[2:])], POKER_DICT['number'][int(one_poker[:2])]), end="\t") + + def deal_poker(self): + '''发牌''' + for person_index in range(self.person_number): + temp_list = [] + # 遍历牌 + for index in range(len(self.poker_list)): + if index % self.person_number == person_index: # 根据玩家的序号 取余 + temp_list.append(self.poker_list[index]) + self.person_poker_list.append(temp_list) + print(temp_list) + + def print_person_poker(self): + """打印玩家的牌""" + for index, value in enumerate(self.person_poker_list): + # 换行 + print() + print("第%d家的牌: " % index, end="") + self.print_all_poker(self.person_poker_list[index]) + + def start(self): + print("正在启动游戏......") + time.sleep(1) + print("游戏启动成功") + while True: + print() + print("=" * 30 + "poker GAME START" + "=" * 30) + input_type = input("开始游戏 【1-生成牌 2-打印所有牌 3-发牌 4-打印玩家牌 5-洗牌 6-整理牌 7-退出】:") + if input_type == '1': + print("正在生成扑克牌......") + time.sleep(1) + self.build() + print("生成扑克牌完成") + elif input_type == '2': + self.print_all_poker(self.poker_list) + elif input_type == '3': + self.deal_poker() + elif input_type == '4': + self.print_person_poker() + elif input_type == '5': + pass + elif input_type == '6': + pass + elif input_type == '7': + pass + else: + print("指令错误!!!") + + +if __name__ == '__main__': + obj = Poker(1) + obj.start() diff --git a/poker/poker3.py b/poker/poker3.py new file mode 100644 index 0000000000000000000000000000000000000000..fe96741d76eadcca4abaf90a878354ed17914bdd --- /dev/null +++ b/poker/poker3.py @@ -0,0 +1,96 @@ +# 需求: 实现扑克牌游戏 +import random +import time + +# 扑克牌的基础数据 +POKER_DICT = { + 'number': ['3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A', '2'], + 'type': ["♠", "♥", "♣", "♦"] +} + + +class Poker: + def __init__(self, poker_number: int = 1, person_number: int = 4, ): + self.poker_number = poker_number + self.poker_list = [] + # 定义集合存储玩家的牌 + self.person_number = person_number + self.person_poker_list = [] + # 整理后玩家的牌 + # self.person_sorted_poker_list = [] + + def build(self): + # 定义一个poker数字 + poker_number = [] + for number in range(13): + poker_number.append("%02d" % number) + poker_type = ['00', '01', '02', '03'] + # 生成扑克牌 几副牌 >> 数字 >> 花色 + for pair in range(self.poker_number): + for number in poker_number: + for type in poker_type: + self.poker_list.append(number + type) + print(str(self.poker_list)) + + def print_all_poker(self, print_list: list): + # 打印所有的牌 + for one_poker in print_list: + print("%s%s" % (POKER_DICT['type'][int(one_poker[2:])], POKER_DICT['number'][int(one_poker[:2])]), end="\t") + + def deal_poker(self): + '''发牌''' + for person_index in range(self.person_number): + temp_list = [] + # 遍历牌 + for index in range(len(self.poker_list)): + if index % self.person_number == person_index: # 根据玩家的序号 取余 + temp_list.append(self.poker_list[index]) + self.person_poker_list.append(temp_list) + print(temp_list) + + def print_person_poker(self): + """打印玩家的牌""" + for index, value in enumerate(self.person_poker_list): + print("第%d家的牌: " % (index + 1), end="") + self.print_all_poker(self.person_poker_list[index]) + print("\n") + + def person_sorted_poker(self): + """整理玩家手上的牌""" + for one_person_poker in self.person_poker_list: + one_person_poker.sort() + + def start(self): + print("正在启动游戏......") + print("游戏启动成功") + while True: + print("=" * 30 + "POKER GAME START" + "=" * 30) + input_type = input("开始游戏 【1-生成牌 2-打印所有牌 3-发牌 4-打印玩家牌 5-洗牌 6-整理牌 7-退出】:") + if input_type == '1': + print("正在生成扑克牌......") + time.sleep(1) + self.build() + print("生成扑克牌完成") + elif input_type == '2': + self.print_all_poker(self.poker_list) + elif input_type == '3': + self.deal_poker() + elif input_type == '4': + self.print_person_poker() + elif input_type == '5': + print("正在洗牌......") + random.shuffle(self.poker_list) + print("洗牌完成......") + elif input_type == '6': + print("玩家整理牌") + self.person_sorted_poker() + elif input_type == '7': + print("游戏结束") + break + else: + print("指令错误!!!") + + +if __name__ == '__main__': + obj = Poker(1) + obj.start() diff --git a/readfile/__init__.py b/readfile/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/readfile/students.csv b/readfile/students.csv new file mode 100644 index 0000000000000000000000000000000000000000..28b1383aca47c75fb14f60f3e6da1a56de20962d --- /dev/null +++ b/readfile/students.csv @@ -0,0 +1,3 @@ +陈大可,男,18,高三 +陈二可,男,16,高一 +陈轶可,女,16,高一 \ No newline at end of file diff --git "a/readfile/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.py" "b/readfile/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.py" new file mode 100644 index 0000000000000000000000000000000000000000..1bbf14d71330e8b84fa457e6136419a96c11e289 --- /dev/null +++ "b/readfile/\350\257\273\345\217\226\346\226\207\346\234\254\346\226\207\344\273\266.py" @@ -0,0 +1,47 @@ +# 读取文件 +def read_file(path: str): + # 定义一个集合接收读取的数据 + students = [] + # 开始读取 + try: + # 使用with打开文件 + with open(path, mode='r', encoding='UTF-8') as fd: + # 一次性读取整个文件 + # content = fd.read() + # print(content) + # 逐行读取 + one_line = fd.readline() + print(one_line) + while one_line: + one_line_list = one_line.strip().split(",") + students.append(one_line_list) + one_line = fd.readline() + except Exception as e: + print(str(e)) + return students + + +def read_file_dict(path: str, infos: list): + students = [] + try: + with open(path, mode='r', encoding='UTF-8') as fd: + one_line = fd.readline() + while one_line: + one_line_list = one_line.strip().split(',') + one_student = {} + for index, val in enumerate(one_line_list): + one_student[infos[index]] = val + students.append(one_student) + one_line = fd.readline() + except Exception as e: + print("文件读取错误:", e) + return students + + +if __name__ == '__main__': + # r表示路径中的斜杠取消转义 + path = r"E:\python\project\Pj01\readfile\students.csv" + # file = read_file(path) + + dict_list = read_file_dict(path, infos=['name', 'gender', 'age', 'class']) + print(dict_list)