一段简单的猜数字代码

一段简单的猜数字代码,要求是1,要猜的数字是随机数字1到9;2,猜数字次数为三次;3,如果猜中就打印提示语,并且结束程序;4,如果猜错就打印正确值还有剩下的次数;5,如果次数为0,就打印结束,欢迎下次再来。

文件名为:easy_guess.py,代码如下:

 1 # !usr/bin/env python3
 2 # *-* coding:utf-8 *-*
 3 
 4 '''
 5 一个简单的猜数字游戏
 6 要猜的数字为随机数字1到9
 7 猜的次数为3
 8 如果猜中就打印猜中的提示语
 9 如果没猜中就打印正确值,还有剩下的次数
10 如果次数为0,就打印结束,欢迎下次再来
11 '''
12 
13 from random import randint #导入模块
14     
15 
16 #num_input = int(input("Please input a number(range 1 to 9 ) to continue: ")) #输入数字
17 guess_time = 0 #定义猜数字次数
18 
19 '''开始主循环'''
20 while guess_time < 4: 
21     num_input = int(input("PLease input a number(range 1 to 9) to continue: ")) #开始输入字符,因为从终端输入python认为是字符串,所以要在最前面用int()函数强制转化为整型,不然后续比较的时候会出现错误;
22     number = randint(1,9) #定义随机数字,从1到9
23     remain_time = 3 - guess_time #定义剩下的猜字次数
24     
25     if num_input == number: #比较输入的数字是否和随机数相等,代码的第21行前如果没有转化成整型,这里会提示str不能与int进行比较;
26         print("Great guess, you are right!") #相等就执行
27         break #跳出主循环,后续的代码都不会再执行
28     elif num_input > number: #比较输入的数字是否大于随机数
29         print("Large\n The right number is: {}\n You have {} chances!".format(number,remain_time)) #满足条件就提示正确答案和剩余次数
30     elif num_input < number:
31         print("Small\n The right number is: {}\n You have {} chances!".format(number,remain_time)) #满足条件就提示正确答案和剩余次数
32 
33     guess_time += 1 #每次循环完成都让猜字次数(guess_time)自加1,直到不满足主循环条件guess_time < 4

上面的代码并不能执行如果次数为0 就打印结束,欢迎下次再来,而且也没有判断用户输入,下面把代码改一下,来完善一下,文件名为another_easy_guess.py:

 1 # usr/bin/env python3
 2 # *-* coding:utf-8 *-*
 3 
 4 from random import randint #导入模块
 5 
 6 guess_time = 0 #定义猜数字次数
 7 
 8 '''开始主循环'''
 9 while guess_time < 4: 
10     remain_time = 3 - guess_time #定义猜的次数
11     num_input = input("Please input a number(integer range 1 to 9) to continue(You have {} times to guess): ".format(remain_time)) #开始输入
12     number = randint(1,9) #定义随机数
13     
14     
15     if guess_time >=0 and guess_time < remain_time: #猜的次数大于0还有小于剩余次数才会执行下面的代码块
16         if not num_input.isdigit(): #判定输入的是否是数字
17             print("Please input a integer to continue.") #如果不是数字,提示用户输入数字
18         elif int(num_input) < 0 or int(num_input) > 10: #判定是不是在我们设定的数字范围内
19             print("Please use the number 1 to 9 to compare.") #如果不是就提示
20         elif int(num_input) == number: #判定输入的数字是否与随机数相等
21             print("Great guess, you are right!")
22             break
23         elif int(num_input) > number: #判定输入数是否大于随机数
24             print("Large\n The right number is: {}\n There are {} chances for you!".format(number,(remain_time - 1)))
25         elif int(num_input) < number: #判定输入数是否小于随机数
26             print("Small\n The right number is: {}\n There are {} chances for you!".format(number,(remain_time - 1)))
27     else:
28         print("You have arrived the limited, see you next time!") #次数小于剩余次数后执行
29         break #跳出循环
30         
31     guess_time += 1 #猜的次数自增1直到guess_time < 4;
32     
33 
34 '''历史遗留问题:1,上面的代码只针对用户输入的数字,用户输入字符串也是会计算次数的;
35                 2,如果都没猜中且次数用完,是直接打印最后的You have arrived the limited, see you next time!而预期的提示正确答案。
36 '''

 

上面代码只针对用户输入的是数字,如果输入的是字符串,比如aaa,bbb也是会计算次数的。

posted @ 2020-06-15 10:14  、一叶孤城  阅读(1222)  评论(0编辑  收藏  举报