一.剪刀石头布
需求:和电脑玩剪刀石头布游戏
考察点:1.随机数;2.判断语句
import random
# num=random.randint(1,3)
# print(num)
# print('*'*30)
#1.录入玩家手势
player=int(input('请输入手势:(1.剪刀 2.石头 3,布):'))
#2.生成电脑手势
computer=random.randint(1,3)
print(f'电脑手势:{computer}')
#3.比较,给出结果。
if player!=1 and player!=2 and player!=3:print('输入的值有误,请重新输入!')
elif player==computer:print('平局了!')
elif (player==1 and computer==3) or(player==2 and computer==1) or (player==3 and computer==2):print('恭喜你赢了!')
else:print('电脑赢了!')
二、报数字游戏
需求:键盘录入参与游戏的总人数,统计个位数不为7且不是7的倍数的总数有多少个。
考察点:统计(计数)思想
'''
案例:报数字游戏
考察点:统计(计数)思想
需求:键盘录入参与游戏的总人数,统计个位数不为7且不是7的倍数的总数有多少个
提示:录入50 结果:39
'''
#1.键盘录入用户数字
num=eval(input('请输入参与游戏的总人数:'))
#2.count用于记录合法的总人数
count=0
#3.for循环获取具体人数的编号
for i in range(1,num+1):
#4.判断当前数字是否非法,如果非法continueif i%7==0 or i%10==7:continue
#5.走到这里,我们要的数字计数器+1count+=1
#6.循环结束后,打印结果
print(f'符合条件的有{count}个')
# s1='sbabc'
# print('abc' in s1)
name='张三'
print(name)
print(eval('name'))
# print(eval('张三'))
三、水仙花数
需求:打印所有的水仙花数
#水仙花数,三位数,各个数位的立方和相加等于该数字 #例如:153=1*1*1+5*5*5+3*3*3
#1.打印所有的水仙花数:
#水仙花数,三位数,各个数位的立方和相加等于该数字
#例如:153=1*1*1+5*5*5+3*3*3
'''
获取一个数字各个数位:
个位:i//1%10
十位:i//10%10
百位:i//100%10
千位:i//1000%10
......
'''
#1)我的做法
for i in range(100,1000):a=i//100%10b=i%100//10c=i//1%10if a*a*a+b*b*b+c*c*c==i:print(i)
print('-'*30)
#2)正规做法
for i in range(100,1000):ge=i//1%10shi=i//10%10bai=i//100%10if ge*ge*ge+shi*shi*shi+bai*bai*bai==i:print(i)
print('-'*30)
#需求2.统计水仙花数的个数
count=0
for i in range(100,1000):ge=i//1%10shi=i//10%10bai=i//100%10if ge*ge*ge+shi*shi*shi+bai*bai*bai==i:count+=1
print(f'水仙花数的个数是:{count}')
print('-'*30)
四、打印质数
需求:打印(1,100)所有的质数。
考察点:循环+else语法
#执行流程: #如果循环是正常结束(即:不是通过break跳出的)
#就一定会指定else中的内容,反之,则不执行。
#循环只要不是break方式结束的,就会正常退出,走else的内容,否则不走else的内容。
#1.假设10是质数,1和10可以排除,因为肯定能整除,只要拿10和2,3,4,5,6,7,8,9来逐个判断,只要有一组能整除,说明10不是质数
#核心思路:判断i是否是整数,只要拿i和2~(i-1)逐个判断即可。
#核心思路:判断i是否是整数,只要拿i和2~i//2逐个判断即可。
#1.定义计数器,用于记录质数的个数
count=0
#2.获取1-100之间的所有数字
for i in range(2,101):#i就是要判断是否是质数的值#获取2~i//2之间的所有数字for j in range(2,i//2+1):#判断是否是质数if i%j==0:break#能整除,说明i不是质数else:count+=1# #方式1.分解版# if count%3==0:# print(i,end='\n')# else:# print(i,end='\t')#方式2.#my version# print(i,end='\n') if count%3==0 else print(i,end='\t')#teacher version#三元表达式做法print(i,end='\n'if count%3==0 else '\t')
五、猜数字游戏
需求:随机生成1个1-100之间的整数,让用户来猜,猜对了结束,猜错了继续猜,并提示用户猜大了还是猜小了。
考察点:1.随机数;2.条件判断。
#1.导包
import random
#2.随机生成1-100之间的随机整数
guess_number=random.randint(1,100)
#3.循环,让用户猜。因为不知道用户多少次能猜对,所以用while死循环.
while True:#4.提示用户录入一个整数,并接收input_number=eval(input('请录入您要猜的整数:'))#5.判断用户输入的整数与随机数是否相等,并提示。if input_number>guess_number:print('猜大了!')elif input_number<guess_number:print('猜小了!')else:print('恭喜你,猜对了!')break
六、打印九九乘法表
需求:打印九九乘法表
考察点:循环语句
for循环写法:
#案例5.打印九九惩罚表
for i in range(1,10):#外循环,控制行数,包左不包右for j in range(1,i+1):print(f'{j}*{i}={i*j}',end='\t')print()
print('-'*30)
while循环写法:
i=1
while i<=9:j=1while j<=i:print(f'{j}*{i}={j*i}',end='\t')j+=1print()i+=1
print('-'*30)
运行结果: