1
输出9行内容,第1行输出1,第二行输出12,第3行输出123,以此类推,第9行输出123456789
i=0
while i<9:
i=i+1
j = 0
while j<9:
if j<i:
j = j+1
print(j,end="")
elif j==i:
print("")
break
2
随机生成20个学生成绩,并定义函数来判断这20个学生成绩的等级(100-90为A,80-89为B,其余为C)。其中生成1~100随机数的语句为score=random.randint(1,100)
import random
def fuc(a,b):
num = []
for i in range(20):
num.append(random.randint(a,b))
num.sort()
A = []
B = []
C = []
for j in num:
if 90 < j <=100:
A.append(j)
elif 80 < j <= 90:
B.append(j)
else:
C.append(j)
return f'二十位学生成绩为{num};\n其中等级A学生{len(A)}位,等级B{len(B)}位,等级C{len(C)}位'
print(fuc(0,100))
3
(1)生成一个大文件data.txt,要求1200行,每行随机为0-20的整数。
(2)读取data.txt文件,统计这个1文件中出现频率排前10的整数。
form operator import itemgetter
import random
#生成文件
with open('data.txt') as fp:
lst = (str(random.randint(0,20))+'\n'for _ in range(1200))
fp.writelines(lst)
#统计文件
with open('data.txt') as fp:
result = {}
for line in fp:
temp = int(line[:-1]
result[temp] = result.get(temp,0) + 1
result = dict(sorted(result.items(),key=itemgetter(1,0),reverse=True))
for k,v in tuple(result.item())[:10]:
print(f'随机数:{k},出现次数:{v}')
4
输入某年某月某日,判断这一天是这一年的第几天。
year = int(input("请输入年分:"))
month = int(input("请输入月份:"))
day = int(input("请输入日:"))
print("-" * 20)
day += (month-1) * 30 # 计算出month前的天数,按照每月30计算
if month < 9: # 计算1、3、5、7月,每月的多出来的一天,也就是存在31天
day += month//2
else: # 大于等于9月后,需要计算1、3、5、7、8、10、12月的多出来的一天,所有在取模的时候对month+1,之所以判断 month<9,由于7和8月连,对于后面的月份+1
day += (month+1)//2
if month > 2: # 计算闰年中,2月份的天数存在不足30天的日期
if year%400 ==0 or year%4 == 0 and year%100 !=0 :
day -= 1
else:
day -= 2
print("是一年的第%d天"%day)
5
利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()
法1:
def trim(s):
if s[:1] !=' ' and s[-1:] !=' ':
return s
elif s[:1] ==' ':
return trim(s[1:])
else:
return trim(s[:-1])
法2:
def trim(s):
for i in range(len(s)):
if s[0] ==' ':
s = s[1:]
for k in range(len(s)):
if s[-1] == ' ':
s = s[:-1]
return s
6
斗地主是一款风靡全国的纸牌类游戏,有着广泛的群众基础,一幅牌一共有54张,包括大王小王以及黑桃、红桃、梅花、方块4种花色各13张,请模拟斗地主发牌过程。
功能要求:
- 三人制斗地主,每个人17张牌,留有三张底牌
- 大小顺序大小王、2、 A以及K到3(3为最小)
- 同一大小的牌,按照黑桃红桃梅花方块的顺序排列
- 最后展示出三个玩家的牌以及底牌
'''
趣味百题-发扑克牌-斗地主
请编程实现发扑克牌
Version: 0.1
Author: jasn
Date: 2020-01-01
主要知识点:random的用法,类的定义和调用
主要功能点:用Python的类实现斗地主的初始化、洗牌、发牌、抢地主、理牌、花色对应。代码如下
'''
import random
class doudizhu:
#定义54张牌
def __init__(self):
self.a=[]
for i in range(54):
self.a.append(i)
#洗牌
def xipai(self):
random.shuffle(self.a) #洗牌
n = random.randint(1, 54)
b = self.a[:n] # 从n的位置切牌
c = self.a[n:]
self.a = b + c
#发牌
def fapai(self):
self.user1=self.a[0:-3:3] #玩家1,获得牌的顺序为 0,3,6,9...
self.user2=self.a[1:-3:3] #玩家2,获得牌的顺序为 1,4,7,10...
self.user3=self.a[2:-3:3] #玩家3,获得牌的顺序为 2,5,8,11...
self.user4=self.a[-3:] #底牌 ,顺序为51,52,53
#抢地主
def qiangdizhu(self):
i=random.randint(1,3)
self.dizhu=i #定义一个地主的实例
if i == 1:
self.user1+=self.user4
if i == 2:
self.user2+=self.user4
if i == 3:
self.user3+=self.user4
#码牌
def mapai(self):
self.user1.sort(reverse=True) ##从小到大码牌
self.user2.sort(reverse=True)
self.user3.sort(reverse=True)
#牌序和花色一一对应
def yingshe(self):
huase = [(0, '方片3'), (1, '梅花3'), (2, '红桃3'), (3, '黑桃3'),
(4, '方片4'), (5, '梅花4'), (6, '红桃4'), (7, '黑桃4'),
(8, '方片5'), (9, '梅花5'), (10, '红桃5'), (11, '黑桃5'),
(12, '方片6'), (13, '梅花6'), (14, '红桃6'), (15, '黑桃6'),
(16, '方片7'), (17, '梅花7'), (18, '红桃7'), (19, '黑桃7'),
(20, '方片8'), (21, '梅花8'), (22, '红桃8'), (23, '黑桃8'),
(24, '方片9'), (25, '梅花9'), (26, '红桃9'), (27, '黑桃9'),
(28, '方片10'), (29, '梅花10'), (30, '红桃10'), (31, '黑桃10'),
(32, '方片J'), (33, '梅花J'), (34, '红桃J'), (35, '黑桃J'),
(36, '方片Q'), (37, '梅花Q'), (38, '红桃Q'), (39, '黑桃Q'),
(40, '方片K'), (41, '梅花K'), (42, '红桃K'), (43, '黑桃K'),
(44, '方片A'), (45, '梅花A'), (46, '红桃A'), (47, '黑桃A'),
(48, '方片2'), (49, '梅花2'), (50, '红桃2'), (51, '黑桃2'),
(52, 'BlackJoker'), (53, 'RedJoker')]
zdpai = dict(huase)
paiuser1=''
for i in range(len(self.user1)):
paiuser1+=zdpai[self.user1[i]]+' ' #以字符串的形式将牌储存起来
paiuser2 = ''
for i in range(len(self.user2)):
paiuser2 += zdpai[self.user2[i]] + ' '
paiuser3 = ''
for i in range(len(self.user3)):
paiuser3 += zdpai[self.user3[i]] + ' '
paiuser4 = ''
for i in range(len(self.user4)):
paiuser4 += zdpai[self.user4[i]] + ' '
self.user1 = paiuser1 #把花色对应好的牌的序列重新赋给三个玩家的实例属性
self.user2 = paiuser2
self.user3 = paiuser3
self.user4 = paiuser4
if __name__ == '__main__':
Player=doudizhu() #将类辅助给playes,方便调用
Player.xipai()
Player.fapai()
Player.qiangdizhu()
Player.mapai()
Player.yingshe()
print('本局地主是:玩家{}'.format(Player.dizhu))
print('底牌:',Player.user4)
print('玩家一:',Player.user1)
print('玩家二:',Player.user2)
print('玩家三:',Player.user3)
7
使用Python语言设计一个小众的学生宿舍管理系统系统用户为宿舍管理员。
功能要求:
-
学生信息,学号,姓名性别,男女宿舍,房间号,联系电话
-
系统功能如下:
-
可按学号查找某一位同学的具体信息
-
可以录入新的学生信息
-
可以显示现有的所有学生信息
程序要求: -
使用函数列表字典,字符串条件循环等解决问题
-
程序规模在80~200行
不放代码了可以点下面的参考看看
加油加油!