物联网编程技术(Python)ifdoors[door] --'goat':print('"goat"behind the door',door)#获取第三个门号,让玩家纠结thirdDoor=(doors.keys()-{door,firstDoorNum)).pop()change = input('Switch to ()?(y/n)'.format(thirdDoor))finalDoorNum = thirdDoor if change=='y'else firstDoorNumif doors[finalDoorNum]=='goat':return 'I win!else:return"You Win.'while True:print('='*30)print(startGame())r =input('Do you want to try once more?(y/n)')ifr=='n':break17
物联网编程技术(Python) 17 if doors[door] == 'goat': print('"goat" behind the door', door) # 获取第三个门号,让玩家纠结 thirdDoor = (doors.keys()-{door, firstDoorNum}).pop() change = input('Switch to {}?(y/n)'.format(thirdDoor)) finalDoorNum = thirdDoor if change=='y' else firstDoorNum if doors[finalDoorNum] == 'goat': return 'I Win!' else: return 'You Win.' while True: print('='*30) print(startGame()) r = input('Do you want to try once more?(y/n)') if r == 'n': break
物联网编程技术(Python)实验十、猜数游戏实验目的:1、熟练运用选择结构与循环结构解决实际问题。2、注意选择结构嵌套时代码的缩进与对齐。3、理解带else子句的循环结构执行流程。4、理解条件表达式value1ifconditionelsevalue2的用法。5、理解使用异常处理结构约束用户输入的用法。6、理解带else子句的异常处理结构的执行流程。实验内容:编写程序模拟猜数游戏。程序运行时,系统生成一个随机数,然后提示用户进行猜测,并根据用户输入进行必要的提示(猜对了、太大了、太小了),如果猜对则提前结束程序,如果次数用完仍没有猜对,提示游戏结束并给出正确答案。参考代码:from random import randintdef guessNumber(maxValue=10, maxTimes=3):#随机生成一个整数value = randint(1,maxValue)for i in range(maxTimes):prompt = 'start to GuEss:'if i==o else 'Guess again:"#使用异常处理结构,防止输入不是数字的情况try:x=int(input(prompt))except:print('Must input an integer between 1 and , maxValue)else:if x == value:#猜对了print('congratulations!')breakelif x >value:print('Too big')else:print('Too little')else:#次数用完还没猜对,游戏结束,提示正确答案print('Game over. FAIL.')18
物联网编程技术(Python) 18 实验十、猜数游戏 实验目的: 1、熟练运用选择结构与循环结构解决实际问题。 2、注意选择结构嵌套时代码的缩进与对齐。 3、理解带 else 子句的循环结构执行流程。 4、理解条件表达式 value1 if condition else value2 的用法。 5、理解使用异常处理结构约束用户输入的用法。 6、理解带 else 子句的异常处理结构的执行流程。 实验内容: 编写程序模拟猜数游戏。程序运行时,系统生成一个随机数,然后提示用户进行猜测, 并根据用户输入进行必要的提示(猜对了、太大了、太小了),如果猜对则提前结束程序, 如果次数用完仍没有猜对,提示游戏结束并给出正确答案。 参考代码: from random import randint def guessNumber(maxValue=10, maxTimes=3): # 随机生成一个整数 value = randint(1,maxValue) for i in range(maxTimes): prompt = 'Start to GUESS:' if i==0 else 'Guess again:' # 使用异常处理结构,防止输入不是数字的情况 try: x = int(input(prompt)) except: print('Must input an integer between 1 and ', maxValue) else: if x == value: # 猜对了 print('Congratulations!') break elif x > value: print('Too big') else: print('Too little') else: # 次数用完还没猜对,游戏结束,提示正确答案 print('Game over. FAIL.')
物联网编程技术(Python)print('The value is',value)guessNumber()19
物联网编程技术(Python) 19 print('The value is ', value) guessNumber()
物联网编程技术(Python)实验十一、抓狐狸游戏实验目的:1、培养分析问题并对进行建模的能力。2、熟练使用列表解决实际问题。3、熟练运用选择结构和循环结构解决实际问题。4、理解带else子句的循环结构执行流程。5、理解使用异常处理结构约束用户输入的用法。实验内容:编写程序,模拟抓狐狸小游戏。假设一共有一排5个洞口,小狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之前跳到隔壁洞口里。参考代码:from random import choice, randrangedef catchMe(n=5,maxStep=10):模拟抓小狐狸,一共n个洞口,允许抓maxStep次如果失败,小狐狸就会跳到隔壁洞口·…#n个洞口,有狐狸为1,没有狐狸为positions=[o]*n#狐狸的随机初始位置oldPos=randrange(o,n)positions[oldPos] = 1#抓maxStep次whilemaxStep >=:maxStep-=1#这个循环保证用户输入是有效洞口编号while True:try:x=input(今天打算打开哪个洞口?(0-0):.format(n-1))#如果输入的不是数字,就会跳转到except部分x = int(x)#如果输入的洞口有效,结束这个循环,否则就继续输入assert<=x<n,要按套路来啊,再给你一次机会。'breakexcept:#如果输入的不是数字,就执行这里的代码print(‘要按套路来啊,再给你一次机会。")20
物联网编程技术(Python) 20 实验十一、抓狐狸游戏 实验目的: 1、培养分析问题并对进行建模的能力。 2、熟练使用列表解决实际问题。 3、熟练运用选择结构和循环结构解决实际问题。 4、理解带 else 子句的循环结构执行流程。 5、理解使用异常处理结构约束用户输入的用法。 实验内容: 编写程序,模拟抓狐狸小游戏。假设一共有一排 5 个洞口,小狐狸最开始的时候在其中一 个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二 天再来抓,但是第二天狐狸会在玩家来抓之前跳到隔壁洞口里。 参考代码: from random import choice, randrange def catchMe(n=5, maxStep=10): '''模拟抓小狐狸,一共 n 个洞口,允许抓 maxStep 次 如果失败,小狐狸就会跳到隔壁洞口''' # n 个洞口,有狐狸为 1,没有狐狸为 0 positions = [0] * n # 狐狸的随机初始位置 oldPos = randrange(0, n) positions[oldPos] = 1 # 抓 maxStep 次 while maxStep >= 0: maxStep -= 1 # 这个循环保证用户输入是有效洞口编号 while True: try: x = input('今天打算打开哪个洞口?(0-{0}):'.format(n-1)) # 如果输入的不是数字,就会跳转到 except 部分 x = int(x) # 如果输入的洞口有效,结束这个循环,否则就继续输入 assert 0 <= x < n, '要按套路来啊,再给你一次机会。' break except: #如果输入的不是数字,就执行这里的代码 print('要按套路来啊,再给你一次机会。')
物联网编程技术(Python)if positions[x] == 1:print(‘成功,我抓到小狐狸啦。")breakelse:print(今天又没抓到。")#如果这次没抓到,狐狸就跳到隔壁洞口if oldPos==n-1:newPos=oldPos -1elif oldpos ==o:newPos=oldPos+1else:newPos = oldPos + choice((-1, 1))positions[oldPos],positions[newPos]=o,1oldPos=newPoselse:print(‘放弃吧,你这样乱试是没有希望的。")#启动游戏,开始抓狐狸吧catchMe()21
物联网编程技术(Python) 21 if positions[x] == 1: print('成功,我抓到小狐狸啦。') break else: print('今天又没抓到。') # 如果这次没抓到,狐狸就跳到隔壁洞口 if oldPos == n-1: newPos = oldPos -1 elif oldPos == 0: newPos = oldPos + 1 else: newPos = oldPos + choice((-1, 1)) positions[oldPos], positions[newPos] = 0, 1 oldPos = newPos else: print('放弃吧,你这样乱试是没有希望的。') # 启动游戏,开始抓狐狸吧 catchMe()