一道Python简单程序结构练习题

1.猜数游戏。

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

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

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

from random import*
x=randint(0,9)

for i in range(10):
    y=eval(input("请输入一个0到九的数:"))

    if x<y:
        print("遗憾,太大了")
    elif x>y:
        print("遗憾,太小了")
    else:
        print("预测"+str(i+1)+"次,""你猜中了")
        break

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

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

2.统计不同字符个数。

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

字符的个数。

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

在这里插入图片描述

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

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

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

from random import*
x=randint(0,100)

for i in range(100):
    
    try:
        y=eval(input("请输入一个0到100的数:"))
        if x<y:
            print("遗憾,太大了")
        elif x>y:
            print("遗憾,太小了")
        else:
            print("预测"+str(i+1)+"次,""你猜中了")
            break
    except NameError:
        print("输入格式有误!")
    finally:
        print("执行完毕!")

在这里插入图片描述

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

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

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

在这里插入图片描述

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

发布了705 篇原创文章 · 获赞 833 · 访问量 136万+

猜你喜欢

转载自blog.csdn.net/sinat_38682860/article/details/105202260