鱼C论坛

 找回密码
 立即注册
查看: 1235|回复: 10

[已解决]刚看到第五讲 好多不明白的意思 求大佬给我讲讲

[复制链接]
发表于 2020-8-3 14:05:33 | 显示全部楼层 |阅读模式

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

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

x
这个为什么有这么多的空行  有的字符串后面为什么要加end=""
为什么这个guess=0这个要在两个print()中间  temp是个变量  那temp.isdigit()是什么意思
最佳答案
2020-8-3 16:43:54
哥白尼 发表于 2020-8-3 16:39
他这个循环下面 temp=input() 再往下为什么没有 Int()这个转换函数

guess = int(temp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-8-3 14:06:32 | 显示全部楼层
import random

times = 3
secret = random.randint(1,10)

print('------------------我爱鱼C工作室------------------')
guess = 0
print("不妨猜一下小甲鱼现在心里想的是哪个数字:", end=" ")

while (guess != secret) and (times > 0):
    temp = input()
   
    if temp.isdigit():
        guess = int(temp)
        if guess == secret:
            print("我草,你是小甲鱼心里的蛔虫吗?!")
            print("哼,猜中了也没有奖励!")
        else:
            if guess > secret:
                print("哥,大了大了~~~")
            else:
                print("嘿,小了,小了~~~")
            if times > 1:
                print("再试一次吧:", end='')
            else:
                print("机会用光咯T_T")
    else:
        print("抱歉,您的输入有误,请输入一个整数:", end='')

    times = times - 1 # 用户每输入一次,可用机会就-1

print("游戏结束,不玩啦^_^")

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

使用道具 举报

发表于 2020-8-3 14:06:38 | 显示全部楼层
本帖最后由 zltzlt 于 2020-8-3 14:08 编辑

1. 空行是为了保持代码美观,完全可以把空行去掉
2. 不一定,放在两个 print() 之后也可以
3. temp.isdigit() 是判断 temp 是否可以转化为整数,例如 '1'.isdigit() 为 True,而 'a'.isdigit() 为 False
4. 请见:https://fishc.com.cn/thread-159045-1-1.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 14:22:52 | 显示全部楼层
本帖最后由 Twilight6 于 2020-8-3 14:26 编辑



这个为什么有这么多的空行 ?


你是指代码中的空行吗?为了代码看起来不那么密码麻麻,整体看上去舒服点,仅仅只是为了美观而已哈



有的字符串后面为什么要加end=""?


这个是 print 函数的默认参数 end 而且 end 默认值为  '\n' 换行符,即我们没有人为赋值时候 end = '\n' 的

end 参数是在 print 函数内容打印完成后自动追加打印一个  end 参数的,这也是 print 函数能自动换行的原因

当你重新对 end 参数赋值为一个 "" 空字符串时候,原先的换行功能就被覆盖为空字符串了



为什么这个guess=0这个要在两个print()中间?


你在上下并不影响 print 函数的哈,没关系的,除非你代码中有用到 guess 参数时候才要注意下顺序问题



temp是个变量  那temp.isdigit()是什么意思?


str.isdigit() 是字符串的方法,当字符串为纯数字字符串时候,也就是里面的字符全是数字时候,返回 True ,反之返回 False

这些方法在小甲鱼的第五讲的都有说明哈:

s 为字符串

s.isalnum()  所有字符都是数字或者字母,为真返回 True,否则返回 False。

s.isalpha()   所有字符都是字母,为真返回 True,否则返回 False。

s.isdigit()     所有字符都是数字,为真返回 True,否则返回 False。

s.islower()    所有字符都是小写,为真返回 True,否则返回 False。

s.isupper()   所有字符都是大写,为真返回 True,否则返回 False。

s.istitle()      所有单词都是首字母大写,为真返回 True,否则返回 False。

s.isspace()   所有字符都是空白字符,为真返回 True,否则返回 False。
         
例如:
>>> s = 'I LOVE FISHC'
>>> s.isupper()
>>> True


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

使用道具 举报

 楼主| 发表于 2020-8-3 16:05:42 | 显示全部楼层
Twilight6 发表于 2020-8-3 14:22
你是指代码中的空行吗?为了代码看起来不那么密码麻麻,整体看上去舒服点,仅仅只是为了美观而已哈 ...

把print()放在前面需要加end=" " 那为什么不把input()放在前面接收  这样不就不用加上end=" " 了吗。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 16:07:16 | 显示全部楼层
哥白尼 发表于 2020-8-3 16:05
把print()放在前面需要加end=" " 那为什么不把input()放在前面接收  这样不就不用加上end=" " 了吗。





对,但是这样就可以直接通过 print 打印来改变  input 需要显示的内容了

我们第一次打印的是 循环外的 print 但是后续的打印的是循环内的  print ,字符串不同,但是 input 还是原先的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-3 16:20:31 | 显示全部楼层
zltzlt 发表于 2020-8-3 14:06
1. 空行是为了保持代码美观,完全可以把空行去掉
2. 不一定,放在两个 print() 之后也可以
3. temp.isdig ...

什么情况下 需要用到这个isdigit()这个函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-3 16:23:52 | 显示全部楼层
Twilight6 发表于 2020-8-3 14:22
你是指代码中的空行吗?为了代码看起来不那么密码麻麻,整体看上去舒服点,仅仅只是为了美观而已哈 ...

那我们什么情况下才会用到这个isdigit  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 16:29:05 | 显示全部楼层
哥白尼 发表于 2020-8-3 16:20
什么情况下 需要用到这个isdigit()这个函数

当需要判断一个字符串是否可以转化成整数就要用到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-3 16:39:53 | 显示全部楼层
zltzlt 发表于 2020-8-3 16:29
当需要判断一个字符串是否可以转化成整数就要用到

他这个循环下面 temp=input() 再往下为什么没有 Int()这个转换函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-3 16:43:54 | 显示全部楼层    本楼为最佳答案   
哥白尼 发表于 2020-8-3 16:39
他这个循环下面 temp=input() 再往下为什么没有 Int()这个转换函数

guess = int(temp)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 17:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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