Python3.6:“猜数字游戏”TypeError: '<' not supported between instances of 'str' and 'int'

今天学习Python语言的时候写了个“猜数字”的小程序,就贴出来和大家分享一下,也给自己做个记录。
1.简易版“猜数字”游戏,系统随机产生一个0-9的整数,判断用户输入的数字是否正确。
初始代码:

#coding:utf-8
import random
s=random.randint(0,9)#生成一个随机的0-9的整数
n=input("请输入您猜的数字>>")#输入一个猜的0-9的整数
if n < 10 and n >= 0:
    if n==s:
        print("恭喜您猜对了,答案为",s)
    else:
        print("猜错了,答案为",s)
else:
    print("请输入0-9的整数>>")

运行后,输入1,报错:(如下图示)
这里写图片描述

通过查阅相关资料,发现报错的原因是:因为input()返回的数据类型是str,不能直接和整数进行比较,必须先把str换成整数,这里我们可以使用int()函数来实现。

修改后的代码:

#coding:utf-8
import random
s=random.randint(0,9)
n=int(input("请输入您猜的数字>>"))
if n < 10 and n >= 0:
    if n==s:
        print("恭喜您猜对了,答案为",s)
    else:
        print("猜错了,答案为",s)
else:
    print("请输入0-9的整数>>")

或者

#coding:utf-8
import random
s=random.randint(0,9) #生成一个随机的0-9的整数
n=input("请输入您猜的数字>>")#输入一个数字
l=int(n)
if l <10 and l >=0:
    if l == s:
        print("恭喜您猜对了!")
    else:
        print("很遗憾猜错了,正确答案为", s)
else:
    print("请输入0-9的整数>>")

运行后同样输入整数1,无错误,结果如下:
这里写图片描述

2.改良版“猜数字”游戏,系统随机生产一个0-9的整数,用户输入一个数字,直到猜对为止!

源代码:

#coding:utf-8
import random
s=random.randint(0,9)
n=int(input("请输入您猜的数字>>"))
while True:
    if n < 10 and n >= 0:
        if n == s:
            print("恭喜您猜对了,答案为", s)
            break
        else:
            if n > s:
                n = int(input("猜大了,再猜>>"))
            else:
                n = int(input("猜小了,再猜>>"))
    else:
        n=int(input("请输入0-9的整数>>"))

这里写图片描述

3.优化版“猜数字”游戏,系统随机生产一个0-9的整数,允许用户猜四次,限定次数内猜对为赢,超过四次还未猜对则判定为输,游戏结束!(若用户输入的数不在0-9整数范围内视为错误,并且不计入竞猜次数)
源程序:

#coding:utf-8
import random
s=random.randint(0,9)
a=0
n=int(input("请输入您猜的数字>>"))
while True:
    if n < 10 and n >= 0:
        if n == s:
            print("恭喜您猜对了,答案为", s)
            break
        else:
            if n > s:
                n = int(input("猜大了,再猜>>"))
            else:
                n = int(input("猜小了,再猜>>"))
    else:
        n=int(input("错误:请输入0-9的整数,您已经猜了%a次,还有%s次机会>>" %(a,4-a)))
        continue
    if a == 3:
        print("游戏结束,你失败了!!!答案为", s)
        break
    else:
        pass
    a += 1

这里写图片描述
这里写图片描述

4.趣味版“猜数字”游戏,系统随机生产一个0-9的整数,用户基本赢不了

#coding:utf-8
import random
while True:
    s=random.randint(0,9)
    n=int(input("请输入一个0-9的整数>>"))
    if n==s:
        while True:
            s=random.randint(0,9)
            if n==s:
                pass
            else:
                break
    print("很遗憾,您猜错了!正确答案是",s)
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值