学习了一段时间的python
尝试开发了一些十分基础的小游戏
比如猜数字
猜年龄
代码如下
输出100-999之间的水仙花数
#举例 153=111+333+555
for item in range(100,1000):
ge=item%10
shi=item//10%10
bai=item//100
if ge3+shi3+bai**3==item:
print(bai,shi,ge)
‘’‘从键盘录入密码 最多录入三次 如果正确结束循环’’’
for item in range(3):
pwd=input(‘请输入密码:’)
if pwd==‘8888’:
print(‘密码正确’)
break
else:
print(‘密码不正确,请重新输入’)
a=0
while a<3:
pwd=input(‘请输入密码’)
if pwd==‘8888’:
print(‘密码正确’)
break
else:
print(‘密码不正确,请重新输入’)
a=a+1
import random
computer=random.randint(1,100)
while True:
number=int(input(“请输入100以内的整数:”))
if(number>computer):
print(“大了”)
elif(number<computer):
print(“小了”)
else:
print(“恭喜你赢了”)
break
‘’‘输出一个三行四列的矩形’’’
for i in range(1,4): # 执行三次 一次一行
for j in range(1,5): # 四次输出
print(’*’,end=’\t’) # 不换行输出
print() # 换行
外层控制的是行数 内层控制的是个数
打印一个直角三角形
for q in range(1,10):
for m in range(1,q+1):
print(’’,end=’’)
print()
for e in range(1,10):
for r in range(1,e+1):
print(e,’’,r,’=’,e*r,end=’\t’)
print()
‘’’ 二重循环当中的break和continue ‘’’
for i in range(5):
for j in range(1,11):
if j%2==0:
continue
print(j,end=’\t’)
#break
print()
‘’‘列表的创建与删除’’’
‘’‘为什么需要列表’’’
a=10 # 变量存储的是一个对象的引用
lst=[‘hello’,‘world’,98]
print(id(lst))
print(type(lst))
print(lst)
‘’‘列表的创建’’’
lst=[‘hello’,‘world’,98] #创建列表的第一种方式
lst2=list([‘hello’,‘world’,98]) # 创建列表的第二种方法 使用内置函数list
‘’‘列表的特点’’’
有序排列
索引只映射唯一一个数据
lst=list([‘hello’,‘world’,98])
print(lst[0])
列表可以储存重复数据
任意类型数据混存
根据需要动态分配和回收内存
‘’‘列表的查询操作’’’
lst=list([‘hello’,‘world’,98])
print(lst.index(‘hello’)) # 如果列表当中存在N个相同元素,只返回相同元素的第一个元素的索引
print(lst.index(‘python’))
还可以在指定范围内查找
print(lst.index(‘hello’,1,3))
print(lst.index(‘hello’,0,3))
lst=[‘hello’,‘world’,98]
获取索引为2 的元素
print(lst[2]) # 正向索引0-N-1
print(lst[-3]) #逆向索引 -N —— -1
获取列表中的多个元素
‘’‘切片操作’’’
lst=[‘10’,‘20’,‘30’,‘40’,‘50’]
#start=1,stop=6,stp1
#print(lst[1:6:1]) # 新的列表对象
print(‘源列表’,id(lst))
lst2=lst[1:6:1]
print(‘切的片段’,id(lst2))
print(lst[1:6]) # 不写代表步长为1
#start 1 stop 6 step=2
print(lst[1:6:2])
print(lst[:6:2]) # 默认从0 开始 省略 star
print(lst[1::2]) # 切片操作
步长为负数
‘’‘逆序输出’’’
获取列表中的多个元素
‘’‘切片操作’’’
lst=[‘10’,‘20’,‘30’,‘40’,‘50’]
#start=1,stop=6,stp1
#print(lst[1:6:1]) # 新的列表对象
print(‘源列表’,id(lst))
lst2=lst[1:6:1]
print(‘切的片段’,id(lst2))
print(lst[1:6]) # 不写代表步长为1
#start 1 stop 6 step=2
print(lst[1:6:2])
print(lst[:6:2]) # 默认从0 开始 省略 star
print(lst[1::2]) # 切片操作
步长为负数
‘’‘逆序输出’’’
‘’‘start=7 stop省略 step=-1’’’
print(lst[7::-1])
‘’‘逆序真的是太方便了哈哈哈’’’
列表的元素查询操作
print('p’in ‘python’)
print(‘k’ not in ‘python’)
lst=[‘10’,‘20’,‘30’,‘python’]
print(‘10’ in lst)
print(‘100’ in lst)
print(‘p’ in lst)
向列表的末尾添加一个元素
lst=[‘10’,‘20’,‘30’]
lst.append(100) # 在列表的末尾添加一个元素
print(lst,id(lst))
lst2=[‘hello’,‘world’]
lst.append(lst2) # 将lst2 作为一个元素添加到列表的末尾
print(lst)
lst.extend(lst2) # 再 lst 的尾部扩展了嘿嘿 一次性添加多个元素
print(lst)
在任意位置上添加一个元素
lst.insert(1,90)
print(lst)
在任意位置添加n多个元素
lst3=[‘Ture’,‘False’,‘hi’]
lst[1:]=lst3
print(lst)
列表元素的删除操作
lst=[‘10’,‘20’,‘30’]
lst.remove(‘30’)
print(lst)
pop()根据索引去移除元素
lst.pop(1)
print(lst)
如果指定的索引位置不存在,则抛出异常
lst.pop() #如果不指定参数将删除列表中的最后一个参数
print(lst)
‘’‘切片 至少删除一个元素 将产生一个新的列表对象’’’
lst2=[10,20,30,40,50,60,70]
new_lst2=lst2[1:3]
print(lst2)
print(new_lst2)
‘’‘不产生新的列表对象而删除元列表中的内容’’’
lst2[1:3]=[]
print(lst2)
‘’‘清除列表中的所有元素’’’
lst.clear()
print(lst)
#del lst2
#print(lst2) 最霸道直接删 现在输出会报错
列表元素的删除操作
lst=[‘10’,‘20’,‘30’]
lst.remove(‘30’)
print(lst)
pop()根据索引去移除元素
lst.pop(1)
print(lst)
如果指定的索引位置不存在,则抛出异常
lst.pop() #如果不指定参数将删除列表中的最后一个参数
print(lst)
‘’‘切片 至少删除一个元素 将产生一个新的列表对象’’’
lst2=[10,20,30,40,50,60,70]
new_lst2=lst2[1:3]
print(lst2)
print(new_lst2)
‘’‘不产生新的列表对象而删除元列表中的内容’’’
lst2[1:3]=[]
print(lst2)
‘’‘清除列表中的所有元素’’’
lst.clear()
print(lst)
del lst2
print(lst2)
‘’‘列表元素的修改操作’’’
lst=[10,20,30]
一次只修改一个值
lst[2]=100
print(lst)
lst[1:3]=[300,400,500]
print(lst)
‘’‘列表元素的排列操作’’’
常见的两种方式
第一种方式 sort()方法
lst=[20,40,10,98,54]
print(lst)
调用列表对象的sort方法,升序排序
lst.sort()
print(lst,id(lst))
lst.sort(reverse=True) # 标识降序排序
print(lst)
如果不指定reverse 默认为False 升序
‘’‘使用内置函数sorted()对列表进行排序,将产生一个新的列表对象’’’
lst=[20,40,10,98,54]
print(lst)
开始排序
new_list=sorted(lst)
print(new_list)
指定关键字参数,实现列表元素的降次排序
desc_lst=sorted(lst,reverse=True)
print(desc_lst)
‘’‘列表生成式’’’
lst=[i for i in range(1,10)]
print(lst)
lst=[i*i for i in range(1,10)]
print(lst)
注意事项 这个里面应该有一定的规则
‘’‘列表中的元素为2,4,6,8,10’’’
lst2=[i*2 for i in range(1,6)]
print(lst2)
字典 { } 使用这个大括号定义字典
字典的创建
‘’‘使用{}去创建字典’’’
scores={‘张三’:100,‘李四’:200}
print(scores)
‘’‘字典的常用操作’’’
‘’‘获取字典的元素’’’
scores={‘张三’:100,‘李四’:200}
‘’‘第一种方式 使用[]’’’
print( scores[‘张三’])
print(scores.get(‘李四’))
‘’‘区别就是你要查找的键不存在 一个报错 get’’’
‘’‘2020 软件工程 张子麒’’’
import random
secret=random.randint(1,100)
guess=0
times=6
a=0
print(’#---------来玩个小游戏吧---------#’)
for i in range(7):
guess=int(input(‘这里有个数 在1-100之间 来猜猜看啊’))
if a<=5:
if guesssecret:
print(‘不是吧!这你都能才对 牛🐂!你只用了’,a+1,‘次就猜对了’)
break
elif a>=1 and guess0:
print(‘真可惜 下次在玩吧’)
print(’----------下次要好好猜哦----------’)
break
elif int(guess)>secret and guess-secret>10 :
print(‘不对不对,有点太大了 还剩’,times,‘次机会 不想玩了输入0退出’)
elif int(guess)>secret and guess-secret<10:
print(‘快了快了!就比它大一点点了!加油!你还剩’,times,‘次机会 不想玩了输入0退出’)
elif int(guess)10:
print(‘哎呀哎呀,有点太小了 还剩’,times,‘次机会 不想玩了输入0退出’)
elif int(guess)<secret and secret-guess<10:
print(‘快了快了!就比它小一捏捏了!还剩’,times,‘次机会 不想玩了输入0 退出’)
else:
print('真可惜没猜中 游戏结束 正确答案',secret)
print('----------下次再来啊----------')
times-=1
a+=1
猜数字试错
import random
生命值 = 3
问题量 = 10
secret = random.randint(1, 2)
guess = 0
print(‘猜一个数字’)
print(‘生命值=’ + str(生命值))
print(‘1到10里面只有一个是对的’, end=’:’)
while 问题量 > 0 and 生命值 > 0:
temp = input()
guess = int(temp)
if guess == secret:
生命值 = 生命值 + 1
问题量 = 问题量 - 1
print('猜对了')
if 问题量 > 0:
print('还有' + str(问题量) + '题')
print('Next One', end=':')
elif guess > secret:
print('大了')
生命值 = 生命值 - 1
print("猜错了,你还有", 生命值, "点生命值")
print("再试一次", end=':')
else:
print('小了')
生命值 = 生命值 - 1
if 生命值 > 0:
print("猜错了,你还有", 生命值, "点生命值")
print("再试一次", end=':')
else:
print('Game Over\n' + '正确的答案是:' + str(secret))
if 生命值 > 0 and 问题量 == 0:
print(‘你胜利了’)
#猜年龄小游戏完全体
猜年龄小游戏嘿嘿
print(’----------信不信我能猜中你的年龄-----------’)
print(‘给我一个机会’)
age=int(input(‘请在1-9任意选择一个数字’))
age=age2
age=age+5
age=age50
print(‘你今年过生日了吗?过了扣1 没过扣0’)
c=int(input(‘请输入1或0’))
if c1:
age=age+1770
b=int(input(‘请输入你的出生年’))
age=age-b
print(age,‘你得到了一个三位数,第一位是你刚刚想的那个数,后两位是你今年的年龄’)
elif c0:
age=age+1769
a=int(input(‘请输入你的出生年’))
age=age-a
print(age,‘你得到了一个三位数,第一位是你刚刚想的那个数后两位是你的年龄’)
print(’-----------是不是很厉害呀----------’)
10.6 实践
import random
secret=random.randint(10,30)
print(’------猜饭钱小游戏-----’)
temp=input(‘猜猜我今天午饭花了多少钱’)
guess=int(temp)
if guesssecret:
print(‘哇塞你超棒的哎居然猜对了?!’)
print(‘奖励你猜饭钱小能手称号’)
else:
if guess>secret:
print(‘没有啦 没有花那么多钱啦’)
else:
print(‘不对哦,花的要比这个多’)
while guess!=secret:
temp=input(‘请再试一次吧’)
guess=int(temp)
if guesssecret:
print(‘wow这次猜对了耶!’)
else :
if guess > secret:
print(‘没有啦 没有花那么多钱啦’)
else:
print(‘不对哦,花的要比这个多’)
print(‘游戏结束’)