列表与元组的不同:元组一旦成立,不可改变
列表与集合的不同:集合不能存在重复元素,且不能存在可变类型 (可变类型:如列表、字典)
continue:跳过本次循环,往下执行 (适用于for循环、while循环)
break:打破循环 (适用于for循环、while循环)
for i in range(3):
print(i)
>>0
>>1
>>2
a=0
while a<3:
print(a)
a+=1
>>0
>>1
>>2
用法1:
a=0
if a>2:
print("a>2")
else:
print("a<2")
用法2:
b=6
if b>1 and b<2:
print("C")
elif b>2 and b<3:
print("B")
else:
print("A")
def myfunc():
return "ok"
print(myfunc())
index.py:
def myfunc():
return "ok"
main.py:
import index
print(index.myfunc())
for i in range(3):
print(i)
else:
print("ok")
>>0
>>1
>>2
>>ok
for i in range(3):
print(i)
等价于:
[print(i) for i in range(3)]
>>0
>>1
>>2
1、程序开始运行后,输入一个三位数整数; 程序会根据输入的整数输出百位、十位和个位上的数。例如,输入123,
输出为:“百:1,十:2,个:3”。
2、输入一个总秒数,计算是几小时几分钟几秒,并一行输出
3、这里有四个数字,分别是:1、2、3、4。提问:能组成多少个互不相同且无重复数字的三位数?各是多少?
4、输出第10个斐波那契数列
5、99乘法表
def test1(number):
number=str(number)
print('百:',number[0],'十:',number[1],'个:',number[2])
def test2(time):
hour=time//3600
minute=time%3600//60
second=time%3600%60
print('时:',hour,'分钟:',minute,'秒数:',second)
def test3():
a=[]
for i in range(1,5):
for k in range(1, 5):
for n in range(1, 5):
if i != k and i!=n and k!=n:
print(i,k,n)
a.append(str(i)+str(k)+str(n))
def test4():
a=[0,1]
for i in range(8):
a.append(a[-1]+a[-2])
print('第十个数是',a[-1])
def test5():
for i in range(1,10):
for k in range(1,i+1):
print(f"{k}*{i}={i*k}",end=' ')
print(end='\n')
功能:
石头剪子布游戏,人机对战
编程思路:
1、采用字典rule列出游戏规则:1代表石头,2代表剪刀,3代表布
2、采用二维数组win表示玩家用户赢的可能
3、如果用户的输入不是‘1’,‘2’,’3‘,则判定输入不符合规则
4、由电脑随机生成数字代表电脑出拳
5、如果user==computer,则平局;如果符合win,则玩家用户赢;除此之外便是电脑赢
源代码
import random
import time
rule={1:'石头',2:'剪刀',3:'布'}
win=((1,2),(2,3),(3,1))
while 1:
user=input('请出拳(1:石头 2:剪刀 3:布):')
if user not in ['1','2','3']:
print('输入不正确')
time.sleep(1)
continue
user=int(user)
computer=random.randint(1,3)
if user==computer:
print(f'你出{rule[user]},电脑出{rule[computer]},平局')
elif (user,computer) in win:
print(f'你出{rule[user]},电脑出{rule[computer]},你贏了')
else:
print(f'你出{rule[user]},电脑出{rule[computer]},电脑赢了')
if input('继续:Y 退出:除Y任意键') == 'Y':
continue
break
功能:
3人斗地主随机发牌系统。共54张扑克牌,每人17张基础牌,随机地主再发3张牌
编程思路:
1、枚举所有花色,除大王外所有牌值,运用三元表达式遍历得到52张牌,再添加大小王,凑齐54张牌,创建deal函数进行发牌.
2、random.sample从puke中随机抽取17张牌添加到lis列表中.再将抽取到的17张牌从puke中移除.循环3次.最后puke中只剩下3张地主牌.
3、此时lis中有三组牌,故索引为0,1,2.利用random.randint(0,2)随机生成一个数对应索引,将剩余的3张牌进行分配.故完成扑克发牌
源代码
import random
color=['♠','♣','♥','♦']
numbers=['A','2','3','4','5','6','7','8','9','10','J','Q','K']
puke=[i+k for i in color for k in numbers]
puke.extend(['大王','小王'])
def deal(puke:list):
lis=list()
for i in range(3):
lis.append(random.sample(puke,17))
for k in lis[i]:puke.remove(k)
else:
lis[random.randint(0,2)].extend(puke)
return lis
[print('player:'+str(i)) for i in deal(puke)]
功能
1、添加学生信息
2、删除学生信息
3、修改学生信息
4、查询学生信息
5、获取所有学生信息
6、退出系统
编程思路
1、创建列表作为学生系统的总数据管理。定义字典来储存每一组学生。
2、使用while循环不断问讯实现控制台交互
3、使用1-6的选择模式进行相关系统操作,不同操作对应不同的类中函数
4、所有操作都围绕列表、和字典进行实现
stu_msg=[]
while 1:
print('''
1、添加学生成绩
2、删除学生成绩
3、修改学生成绩
4、查询学生成绩
5、获取学生成绩
6、退出
''')
n=input("请输入你的选择:")
if n=='1':
stu_msg.append({"id":input('请输入要录入的学生学号:'), "name":input('姓名:'), "math":input('数学:'),"english": input('英语:'), "python":input('python:')})
elif n=='2':
id=input("你要删除的id:")
for index in range(len(stu_msg)):
if id == stu_msg[index]['id']:
del stu_msg[index]
print('删除成功')
break
else:
print("没有该学生")
elif n == '3':
id = input("你要修改的id:")
for stu in stu_msg:
if id == stu['id']:
print(stu)
stu.update({"name":input('姓名:'), "math":input('数学:'),"english": input('英语:'), "python":input('python:')})
print('修改成功')
break
else:
print("没有该学生")
elif n == '4':
id = input("你要查询的id:")
for stu in stu_msg:
if id == stu['id']:
print(stu)
break
else:
print("没有该学生")
elif n == '5':
for i in stu_msg:
print(i)
elif n == '6':
break
else:
print('您输入有误,请重新输入')
continue
print('成功退出')