Python 学习笔记—自己开发小游戏的代码

学习了一段时间的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 guess
0:
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=age
50
print(‘你今年过生日了吗?过了扣1 没过扣0’)
c=int(input(‘请输入1或0’))
if c1:
age=age+1770
b=int(input(‘请输入你的出生年’))
age=age-b
print(age,‘你得到了一个三位数,第一位是你刚刚想的那个数,后两位是你今年的年龄’)
elif c
0:
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 guess
secret:
print(‘wow这次猜对了耶!’)
else :
if guess > secret:
print(‘没有啦 没有花那么多钱啦’)
else:
print(‘不对哦,花的要比这个多’)
print(‘游戏结束’)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值