Python的小游戏小应用
001、输入一个三位数的整数,分别打印出它的个位数、十位数、百位数
number = int(input('请输入一个三位数的整数'))
print('百位数', number // 100)
print('十位数', number // 10 % 10)
print('个位数', number % 10)
#思考:如何写出一个随机几位数的相应标题的拆分数字的代码
002、掷骰子游戏
‘’’
游戏规则:
1.玩游戏要有金币,每局游戏消耗5枚金币;
2.每玩一局游戏赠金币一枚,也可充值获得金币
3.充值金币必须为10元的倍数,每10元可对应充值20枚金币
3.猜大小,随机生成两个1~6的随机数,超过六点认为是大,否则是小。若猜对,则奖励金币2枚,猜错没有奖励
4.游戏结束可以选择主动退出,或者没有金币被动退出
5.退出游戏时要打印剩余金币数和游戏局数
‘’’
'''
游戏规则:
1.玩游戏要有金币,每局游戏消耗5枚金币;
2.每玩一局游戏赠金币一枚,也可充值获得金币
3.充值金币必须为10元的倍数,每10元可对应充值20枚金币
3.猜大小,随机生成两个1~6的随机数,超过六点认为是大,否则是小。若猜对,则奖励金币2枚,猜错没有奖励
4.游戏结束可以选择主动退出,或者没有金币被动退出
5.退出游戏时要打印剩余金币数和游戏局数
'''
import random
coins = 0
count = 0
if coins < 5:
print('金币不足请充值再玩')
while True:
money = int(input('请输入充值金额:'))
if money % 10 == 0:
coins += money // 10 * 20
print('充值成功,当前金币数量为%d个' % coins)
print('~~~~~~~开启游戏之旅~~~~~~~')
answer = input('是否现在开启游戏 y/n')
while coins >= 5 and answer == 'y':
coins -= 5
coins += 1
number_game_1 = random.randint(1, 6)
number_game_2 = random.randint(1, 6)
result_player = input('洗牌完毕,请猜测大小')
if (number_game_1 + number_game_2 > 6 and result_player == '大')\
or (number_game_1 + number_game_2 <= 6 and result_player == '小'):
print('恭喜猜对了,你赢了')
coins += 2
else:
print('很遗憾,本次猜错了')
count+=1
answer = input('是否继续游戏 y/n')
print('共玩了%d次,剩余金币数:%d'%(count,coins))
else:
print('不是10的倍数,充值失败!')
## 003、猜拳游戏
003、猜拳游戏
‘’‘三局两胜,剪刀,石头,布分别代表2,1,0’’’
import random
n = 1
computer = 0
player = 0
while n <= 3:
random_computer = random.randint(0, 2)
guess_player = input('剪刀,石头,布分别代表2,1,0 \n')
if random_computer == player:
print("平局,再来一把")
if (random_computer == 0 and guess_player == 1) or (random_computer == 1 and guess_player == 2) \
or (random_computer == 2 and guess_player == 0):
print("random_computer获胜")
computer += 1
else:
print("guess_player获胜")
player += 1
n += 1
if player > computer:
print("最终guess_player获胜")
else:
print("最终random_computer获胜")
**
004、批量化格式化文件上传
**
'''模拟文件上传,键盘键入文件的名称(xxx.jpg),判断文件名xxx是否大于6位,扩展名是否为jpg\gif\png格式
如果不是则提示上传失败,如果名字不满足条件,而扩展名满足条件则随机生成一个6位数字组成的文件名,打印成功上传xxxx.png'''
import random
file = input('请输入图片文件全称:\n')
if file.endswith('jpg') or file.endswith('gif') or file.endswith('png'): #判断扩展名
i = file.rfind('.')
name = file[:i]
if len(name) < 6: # 判断文件的名字
filename = '' # 重命名文件的名字
string = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM123456789'
for m in range(0, 6):
index = random.randint(0, len(string) - 1)
filename += string[index]
file = filename + file[i:] # 拼接新的文件名此前正确的文件后缀
print('成功上传%s文件' % file)
else:
print('文件格式错误,上传失败')
005、登录界面设置
'''用户名=admin123 手机号码17937946135 密码200325
可以选择用户名或者手机号+密码登录
第一次验证:格式判断
用户名中字母必须全部小写,首位不能是数字,长度必须6位以上
手机号码是11位的纯数字,密码必须是6位数字
第二次验证:内容判断
判断用户名和密码是否正确,正确则成功,否则登录失败'''
flag = True
while flag:
name = input('用户名或者手机号码:')
if (name.islower() and not name[0].isdigit() and len(name) >= 6) or (name.isdigit() and len(name) == 11):
# 继续输入密码,密码输入错误允许多次输入
while True:
password = input('密码')
# 判断是否为6位数字
if len(password) == 6 and password.isdigit():
# 验证用户名和密码的正确性
if (name == 'admin123' or name == '17937946135') and password == '200325':
print('用户登录成功')
flag = False
break
else:
print('用户名或者密码有误!')
break
else:
print('密码必须是6位数字')
else:
print('用户名或者手机号码格式错误')
006、人员管理系统
'''
人员管理系统
添加员工——>姓名、性别,手机号码
删除员工
修改员工
查询单个员工
显示所有员工
退出系统
'''
import time
all_employee = []
while True:
print('--------欢迎进入人员管理系统--------')
choice = input('请选择功能:\n 1.添加员工\n 2.删除员工\n 3.修改员工信息\n 4.查询单个员工\n 5.显示所有员工\n 6.退出系统\n')
if choice == '1':
print('添加员工模块')
name = input('\t员工姓名')
sex = input('\t员工性别')
phone_number = input('\t员工的联系方式')
employee = [name, sex, phone_number]
# 将单个员工信息添加到人员管理系统
all_employee.append(employee)
print('\t 成功添加%s到人员管理系统!\n' % (name))
elif choice == '2':
print('删除员工模块')
employee_name=input('请输入员工名')
#查询是否存在此员工
for employee in all_employee:
if employee_name in employee:
answer=input('\t存在该员工,确认删除?(y/n)')
if answer=='y':
all_employee.remove(employee)
print('\t成功删除员工:{}'.formate(employee_name))
break
else:
print('\t本系统不存在该员工:{},请检查人员管理系统'.format(employee_name))
elif choice == '3':
print('修改员工信息模块')
employee_name1 = input('请输入员工名')
# 查询是否存在此人员
for employee in all_employee:
if employee_name1 in employee:
answer1=input('\t存在此人员,确认修改该员工信息?(y/n)')
if answer1=='y':
answer2=input('请选择修改信息的内容:1.性别 2.手机号码')
if answer2=='2':
pass
elif answer2=='1':
pass
else:
print('功能选择输入错误,请重新输入!')
else:
print('\t本系统不存在该员工:{},请检查人员管理系统'.format(employee_name))
elif choice == '4':
print('查询单个员工模块')
#查询是否存在此人员
for employee in all_employee:
if employee_name in employee:
print('\t存在此人员,人员信息如下:')
print('\t{}{}{}.format(employee[0].ljust(30),employee[1].ljust(30),employee[2].ljust(30))')
break
else:
print('\t本系统不存在该员工:{},请检查人员管理系统'.format(employee_name))
elif choice == '5':
print('显示所有员工模块')
print('{}{}{}'.format('名称'.center(10), '性别'.center(10), '手机号码'.center(10)))
for employee in all_employee:
print(employee[0].center(10), end='')
print(employee[1].center(10), end='')
print(employee[2].center(10), end='')
print()
elif choice == '6':
print('正在退出人员管理系统~~~')
time.sleep(10) # 休眠
print('成功退出人员管理系统')
break
else:
print('功能选择输入错误,请重新输入!')
007、模拟论坛
'''模拟论坛的信息的部分处理
针对一句话允许不同用户可以发出不同评论,最多允许前3位用户做出评论
回复的内容不能为空
回复内容中不可以包含敏感词汇’血腥‘、’杀戮‘,’性侵犯‘
最多评论20字,回复的内容前后不能有空格'''
message=input('请发表一句话:')
print('-*-'*10)
n=1
print('下面是回复的内容:')
while n<=3:
#输入用户名
username=input('请输入用户名:')
while True:
#输入回复内容
comment=input('评论:')
comment=comment.strip()
#验证内容
if len(comment) !=0:
#验证字符长度是否超出20个字
if len(comment)<=20:
#验证是否存在敏感词汇
comment=comment.replace('血腥','**')
comment = comment.replace('杀戮', '**')
comment = comment.replace('性侵犯', '**')
print('\t{}发表的评论是:\n\t{}'.format(username,comment))
break
else:
print('不能超出20字!')
else:
print('评论内容不能为空!')
#成功则发出评论,否则重新输入
n+=1
pass
print('本句话评论已满,暂时不可被评论!')
008、超市结账系统部分模拟
'''买多件商品,每种商品都包含商品名称、商品价格、商品数量三条信息
使用列表的嵌套解决问题'''
container=[]
flag=True
while flag:
#添加商品
name=input('商品名称:')
price=input('商品价格:')
number=input('商品数量:')
goods=[name,price,number]
#将商品添加到container
container.append(goods)
answer=input('是否继续添加?(y/n)')
if answer.lower()=='n':
flag=False
print(container)
print('-*-'*10)
#遍历container
print('名称\t\t价格\t\t数量')
for goods in container:
print('{}\t{}\t{}'.format(goods[0],float(goods[1]),int(goods[2])))
009、自动排序和手动排序问题
# 手动实现冒泡排序(从小到大)
number = [9, 5, 1, 4, 6, 7, 2, 3, 8]
for j in range(0, len(number) - 1):
for i in range(0, len(number) - 1 - j):
if number[i] > number[i + 1]:
a = number[i]
number[i] = number[i + 1]
number[i + 1] = a
print(number)#[1, 2, 3, 4, 5, 6, 7, 8, 9]
# 自动排序
number = [9, 5, 1, 4, 6, 7, 2, 3, 8]
number.sort()
print(number)
# 交换变量的值——>利用Python的特点
x = 10
y = 88
x, y == y, x
print('方法一变化',x,y)#方法一变化 10 88
# 通用方法,利用中间变量
x = 10
y = 88
print('方法二变化之前',x,y)#方法二变化之前 10 88
temp = x
x = y
y = temp
print('方法二变化之后',x,y)#方法二变化之后 88 10