鱼C论坛

 找回密码
 立即注册
查看: 726|回复: 11

[已解决]关于第五节课后题的问题

[复制链接]
发表于 2019-6-28 09:57:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第五节课后动手题第0题,为什么用not isdigit可以在输入为浮点型和字符串型的情况下都判断为不是整数,而用isalpha却不能在字符串型的情况下判断为不是整数呢?这两者之间有什么区别?
还有,答案中temp为一个字符串型,为什么temp.isdigit可以成立?isdigit不是只能在所有字符全为真的情况下才返回为true吗?
最佳答案
2019-6-28 11:40:08
Jipeng_1208 发表于 2019-6-28 11:17
就是说temp=input()这里应该是一个字符串呀,对于一个字符串怎么能做isdigit的操作?isdigit不是应该在 ...

对啊,isdigit就是字符串的方法啊,是用来判断你输入的字符串是否是数字
>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-6-28 09:58:28 | 显示全部楼层
print("-----------------我爱鱼c工作室----------------")
import random
secret = random.randint(1,10)
temp = input("不妨猜一下小甲鱼心里想的是几:")
while temp.isalpha():
    temp=input("请输入整数:")
i = 0
guess = int(temp)
if guess == secret:
    print("我草,你是小甲鱼心里的蛔虫吗?!")
    print("哼,猜中了也没有奖励!")
else:
    i = i + 1
    while guess != secret:
        temp = input("猜错了,请再试一次吧:")
        guess = int(temp)
        i = i + 1
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if i >= 3:
                print("错误已达上限")
                break
            else:
                if guess > secret:
                    print("大了")
                else:
                    if guess < secret:
                        print("小了")
print("游戏结束,不玩啦!")






print("-----------------我爱鱼c工作室----------------")
import random
secret = random.randint(1,10)
temp = input("不妨猜一下小甲鱼心里想的是几:")
while not temp.isdigit:
    temp=input("请输入整数:")
i = 0
guess = int(temp)
if guess == secret:
    print("我草,你是小甲鱼心里的蛔虫吗?!")
    print("哼,猜中了也没有奖励!")
else:
    i = i + 1
    while guess != secret:
        temp = input("猜错了,请再试一次吧:")
        guess = int(temp)
        i = i + 1
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if i >= 3:
                print("错误已达上限")
                break
            else:
                if guess > secret:
                    print("大了")
                else:
                    if guess < secret:
                        print("小了")
print("游戏结束,不玩啦!")


有啥区别?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-28 10:08:51 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 10:26:43 | 显示全部楼层
newu 发表于 2019-6-28 10:08
https://fishc.com.cn/thread-62060-1-1.html

谢谢!那isalpha要怎么用呢?还有为啥temp.isdigit可以成立?temp=input()不是一个字符串吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-28 10:29:51 | 显示全部楼层
Jipeng_1208 发表于 2019-6-28 10:26
谢谢!那isalpha要怎么用呢?还有为啥temp.isdigit可以成立?temp=input()不是一个字符串吗?

isalpha() # 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
>>> 'aaa'.isalpha()
True
>>> '123'.isalpha()
False
>>> 'abc.com'.isalpha()
False
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 10:32:05 | 显示全部楼层
newu 发表于 2019-6-28 10:29
isalpha() # 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

谢谢老师!那个temp是什么原因呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-28 10:37:06 | 显示全部楼层
Jipeng_1208 发表于 2019-6-28 10:32
谢谢老师!那个temp是什么原因呢?

没明白,temp就是你输入的字符串啊传进去的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 11:17:53 | 显示全部楼层
newu 发表于 2019-6-28 10:37
没明白,temp就是你输入的字符串啊传进去的啊

就是说temp=input()这里应该是一个字符串呀,对于一个字符串怎么能做isdigit的操作?isdigit不是应该在全为数字的情况下才会输出true吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-28 11:37:08 | 显示全部楼层
本帖最后由 jackz007 于 2019-6-28 11:38 编辑
Jipeng_1208 发表于 2019-6-28 11:17
就是说temp=input()这里应该是一个字符串呀,对于一个字符串怎么能做isdigit的操作?isdigit不是应该在 ...


    isdigit() 就是专门供字符串对象使用的方法

    str = '36845'
    if str . isdigit():
        print(str)  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-28 11:40:08 | 显示全部楼层    本楼为最佳答案   
Jipeng_1208 发表于 2019-6-28 11:17
就是说temp=input()这里应该是一个字符串呀,对于一个字符串怎么能做isdigit的操作?isdigit不是应该在 ...

对啊,isdigit就是字符串的方法啊,是用来判断你输入的字符串是否是数字
>>> dir(str)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 11:58:18 | 显示全部楼层
jackz007 发表于 2019-6-28 11:37
isdigit() 就是专门供字符串对象使用的方法

    str = '36845'

明白了,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 11:58:59 | 显示全部楼层
newu 发表于 2019-6-28 11:40
对啊,isdigit就是字符串的方法啊,是用来判断你输入的字符串是否是数字

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-16 12:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表