目录
1.剪刀石头布游戏
游戏开始,初始状态下用户和电脑都有100分,赢一局+10,输一局-10分。当用户分数为0时,游戏结束,提示“游戏结束,比赛输了”;当用户为200分时,游戏结束,提示“游戏结束,比赛赢了”,每轮比赛都输出当前的分数
#1代表剪刀,2代表石头,3代表布
import random as rd
print("="*60)
print(''*20,'剪刀石头布游戏')
print("1代表剪刀,2代表石头,3代表布")
game_info={1:'剪刀',2:'石头',3:'布'}
score=100
while True:
robots_choice=rd.randint(1,3)
user_choice=input("请出拳")
if user_choice not in '123':
print("出拳错误,请重新出拳")
continue
user_choice=int(user_choice)
print("="*60)
print(f"电脑出{game_info[robots_choice]}")
print(f'你出{game_info[user_choice]}')
print('='*60)
if user_choice==1 and robots_choice==3 or user_choice==2 and robots_choice==1 or user_choice==3 and robots_choice==2:
score+=10
print(f'你赢得本轮游戏,当前分数为{score}')
elif user_choice==robots_choice:
print(f'本轮游戏平局,当前分数为{score}')
else:
score-=10
print(f'你输了本轮游戏,当前分数为{score}')
if score>=200:
print('游戏结束,你赢得比赛')
elif score<=0:
print("游戏结束,你输了")
break
2.快乐数
在给定的数字下,该数字所有数位的平方和,得到的新数再次求所有数位的平方和,如此重复进行,最终结果必定为一
def sum_square(n):
sum_num=0
for i in str(n):
sum_num+=int(i)**2
return sum_num
list1=[]
n=int(input("请输入数字:"))
while sum_square(n) not in list1:
n=sum_square(n)
list1.append(n)
if n==1:
print("是快乐数")
else :
print("不是快乐数")
3.猜年龄(1)
小明带两个妹妹参加元宵灯会,别人问她们多大了,她们说:“我们两的年龄之积是年龄之和的6倍”。小明补充说:“她们两个不是双胞胎,年龄差不超过八岁”。请写出小明较小妹妹的年龄
for i in range(1,100):
for j in range(1,i):
if i * j==(i+j)*6 and i-j<8:
print(i,j)
4.猜年龄(2)
set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集、并集等
美国数学家维纳11岁就上了大学。他曾应邀来清华大学讲学,一次,他参加某个重要会议,有人问他年龄,他回答说:“我年龄的立方是个四位数。我年龄的四次方是个六位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请推算,他当时多大
for i in range(1,100):
q1=str(i**3)
q2=str(i**4)
if len(q1)==4 and len(q2)==6:
if len(set(q1+q2))==10:
print(i)
print(q1+q2)
5.大衍数列
中国古代文献中,曾记载“大衍数列”,主要用于解释中国传统文化中的太极衍生原理,他的前几项是:0,2,4,8,12,18,24,32,40,50...
规律为:偶数项=序号平方再除以2;奇数项=序号平方减1再除以2
要求:打印大衍数列的前100项
for i in range(1,101):
if i%2==1:
print(int((i**2-1)/2))
else:
print(int(i**2/2))