Python简单程序结构练习题

1.猜数游戏。在程序中预设一个0~9之间的整数,让用户通过键盘输入所猜数字,如果大于预设的数,

显示“遗憾,太大了”;如果小于预设的数,显示“遗憾,太小了”;如此循环,直至猜到该数,显示“预

测N次,你猜中了!”,其中N是用户输入数字的次数。

 1 from random import*
 2 x=randint(0,9)
 3 
 4 for i in range(10):
 5     y=eval(input("请输入一个0到九的数:"))
 6 
 7     if x<y:
 8         print("遗憾,太大了")
 9     elif x>y:
10         print("遗憾,太小了")
11     else:
12         print("预测"+str(i+1)+"次,""你猜中了")
13         break

此题调用了random库的randint()函数来产生一个随机整数,用户在for循环里面输入数字与随机数进行比较,

通过提示调整输入数字的大小,当输入数字与产生的随机数相等时,break跳出循环,程序结束。

 

 

2.统计不同字符个数。用户从键盘输入一行字符串,编写一个程序,统计并输出其中英文、数字、空格和其他

字符的个数。

 1 x=input("输入你的字符串:")
 2 a=b=c=d=0
 3 for i in x:
 4     if ord('a')<=ord(i)<=ord('z') or ord('A')<=ord(i)<=ord('Z'):     
 5         a=a+1
 6     elif ord('0')<=ord(i)<=ord('9'):
 7         b=b+1
 8     elif ord(i)==ord(' '):
 9         c=c+1
10     else:
11         d=d+1
12 print("这一行字符中字母的数量是:{},数字的数量是:{},空格数量是:{},其他字符的数量是:{}。".format(a,b,c,d))
13 

 

 内置函数order()返回单个字符表示的Unicode编码值。赋四种字符初始值为0,for循环遍历输入的字符串,

通过判断语句来区分字符类别并对遍历的字符个数进行递增。

 

4.4 猜数游戏。改编程序练习题4.1,让计算机随机产生一个预设数字,范围在0~100之间,其他游戏规则不变。

 1 from random import*
 2 x=randint(0,100)
 3 
 4 for i in range(100):
 5     
 6     try:
 7         y=eval(input("请输入一个0到100的数:"))
 8         if x<y:
 9             print("遗憾,太大了")
10         elif x>y:
11             print("遗憾,太小了")
12         else:
13             print("预测"+str(i+1)+"次,""你猜中了")
14             break
15     except NameError:
16         print("输入格式有误!")
17     finally:
18         print("执行完毕!")

 

 加入简单的异常处理,对非数字类型进行处理

 

4.7 用异常处理改造4.1,使其能接收并处理用户的任何输入。

 1 from random import*
 2 x=randint(0,9)
 3 print("{0:*^50}".format("猜数字游戏"))
 4 for i in range(10):
 5     
 6     try:
 7         y=eval(input("请输入一个0到9的数:"))
 8         if x<y:
 9             print("遗憾,太大了")
10         elif x>y:
11             print("遗憾,太小了")
12         else:
13             print("预测"+str(i+1)+"次,""恭喜你,你猜中了!")
14             break    
15     except NameError:
16         print("输入格式有误!")
17     else:
18             print("没关系,继续加油!")   
19     finally:
20         print("这是第{}猜".format(i+1))
21 print("{0:*^30}".format("游戏结束"))

 

 此题是相对题一和题四的优化版,加入了else的补充内容,还有每次循环执行完毕finally语句对用户的提示。

  

 

posted @ 2019-10-26 11:14  不秃不强  阅读(3007)  评论(1编辑  收藏  举报