Pyhton第七次课
一、实验课时~
当当当~这周来点不一样的
来点操作!!!
走起!
1.1 聪明的尼姆游戏
尼姆游戏是一个著名的游戏,有很多变种玩法。两个玩家轮流从一堆物品中拿走一部分。在每一步中,玩家可以自由选择拿走多少物品,但是必须至少拿走一个并且最多只能拿走一半物品,然后轮到下一个玩家。拿走最后一个物品的玩家输掉游戏。
在聪明模式中,计算机每次拿走足够多的物品使得堆的大小是2的幂次方减1——也就是3,7,15,31或63.除了堆的大小已经是2的幂次方减1,在其他情况下这样走都是符合游戏规则。在那种情况下,计算机就按游戏规则随机拿走一些。
编写程序,模拟聪明版的尼姆游戏。
from random import randint,choice
def everysetp(n):
half = n / 2
m = 1
lst = []
while True:
i = 2 ** m - 1
if i >= n:
break
if i >= half:
lst.append(n - i)
m += 133
if lst:
return choice(l22st)
else:
return randint(1,int(half))
def game(n):
while n > 1:
print("轮到你的回合,还剩%d的物品" % n)
while True:
try:
num_y = int(input("你要拿走的数量"))
assert 1 <= m_y <= n // 2
break
except:
print("请输入1到%d之间数量的物品" % n//2)
n -= m_y
if n == 1:
print("你赢了")
n -= everysetp(n)
else:
return print("你输了")
game(100)
1.2 猜单词游戏
编写程序模拟猜单词游戏。程序运行时,系统随机生成一个单词,然后将产生后的单词中字母的顺序进行打乱,组成新的一个单词。然后提示用户进行猜测,并根据用户输入进行必要的提示(猜对了,猜错了),如果猜错了,则提示用户继续猜,每一个用户有三次猜测的机会。猜对了则提示用户,“猜对了,恭喜过关”,然后询问用户是否要继续下一关。
import random
WORDS = ['apple','banana','cherry','while','tuple','dictionary','anniversary']
print("欢迎参加猜单词游戏!\n请把乱序后的字母组成一个单词\n")
step = 1
isContinue = "Y"
while isContinue in ("Y","y"):
word = random.choice(WORDS)
answer = word
jumble = ""
for i in word:
position = random.randrange(len(word))
jumble += word[position]
word = word[:position] + word[(position+1):]
print("乱序后的单词:",jumble)
guess = input("\n请输入您猜的结果:")
if step < 3
while guess !=answer:
guess = input("\n结果不对,请重新猜测:")
step +=1
else:
print("很遗憾,没有机会啦!")
print("\n恭喜你,答对了!")
isContinue = input("\n是否将继续(Y/N)?")
print("\n谢谢参与,欢迎下次在玩!")
加油!再来一次!
1.3 成绩输入
输入若干学生的成绩,计算所有这些学生成绩的平均分、及格率以及优秀率。其中学生成绩的个数由第一行输入的整数控制的,60分及以上者为成绩合格,85分及以上者为优秀。
例如输入:4
89
95
56
74
输出:
平均分为:78.50
及格率为:75%
优秀率为:50%
if __name__=='__main__':
n = int(input())
sum = 0
count = 0
average = 0
good = 0
if n != 0:
grade = input().split()
grade = grade[:n]
for i in grade:
sum += int(i)
if int(i) >= 60:
count += 1
count1 = (count/n)*100
if int(i) >= 85:
good +=1
good1 = (good/n)*100
average = sum / n
print("平均分为:",average)
print("及格率:", count1,"%")
print("优秀率:", good1,"%")
二、总结
好啦!本周的练题到位啦!
要熟练运用所学知识,加上从书上及网上来巩固自己! 冲!