一段简单的猜数字代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
⼀段简单的猜数字代码
⼀段简单的猜数字代码,要求是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
13from 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'''开始主循环'''
20while 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
25if num_input == number: #⽐较输⼊的数字是否和随机数相等,代码的第21⾏前如果没有转化成整型,这⾥会提⽰str不能与int进⾏⽐较;
26print("Great guess, you are right!") #相等就执⾏
27break#跳出主循环,后续的代码都不会再执⾏
28elif num_input > number: #⽐较输⼊的数字是否⼤于随机数
29print("Large\n The right number is: {}\n You have {} chances!".format(number,remain_time)) #满⾜条件就提⽰正确答案和剩余次数
30elif num_input < number:
31print("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
4from random import randint #导⼊模块
5
6 guess_time = 0 #定义猜数字次数
7
8'''开始主循环'''
9while 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
15if guess_time >=0 and guess_time < remain_time: #猜的次数⼤于0还有⼩于剩余次数才会执⾏下⾯的代码块
16if not num_input.isdigit(): #判定输⼊的是否是数字
17print("Please input a integer to continue.") #如果不是数字,提⽰⽤户输⼊数字
18elif int(num_input) < 0 or int(num_input) > 10: #判定是不是在我们设定的数字范围内
19print("Please use the number 1 to 9 to compare.") #如果不是就提⽰
20elif int(num_input) == number: #判定输⼊的数字是否与随机数相等
21print("Great guess, you are right!")
22break
23elif int(num_input) > number: #判定输⼊数是否⼤于随机数
24print("Large\n The right number is: {}\n There are {} chances for you!".format(number,(remain_time - 1)))
25elif int(num_input) < number: #判定输⼊数是否⼩于随机数
26print("Small\n The right number is: {}\n There are {} chances for you!".format(number,(remain_time - 1)))
27else:
28print("You have arrived the limited, see you next time!") #次数⼩于剩余次数后执⾏
29break#跳出循环
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也是会计算次数的。