鱼C论坛

 找回密码
 立即注册
查看: 2435|回复: 12

[已解决]python新版第六讲的改进小游戏

[复制链接]
发表于 2022-9-5 17:25:03 | 显示全部楼层 |阅读模式

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

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

x
这是什么问题呀,还有就是有大佬可以说下int,input语句的用法和含义吗?是不是这些语句需要自己先去了解啊
temp=input("请输入你的成绩,接着会告诉你的成绩评级!!!")
guess=int(temp)

if guess<60:
     print("你的评级为D")
else:
     if 60<=guess<80:
         print("你的评级为C")
     else:
         if 80<=guess<90:
             print("你的评级为B")
         else:
             if 90<=guess<100:
                 print("你的评级为A")
             else:
                 print("你的评级为S")
看着就感觉怪怪的
最佳答案
2022-9-6 15:10:15
州洲不爱喝粥 发表于 2022-9-6 15:00
大佬就是如果我想要让这个代码在输入e时就结束可以怎样改进啊
while True:
    temp = input("请输入你的成绩,接着会告诉你的成绩评级!!!") . strip()
    if temp and temp . lower() != 'e':
        guess = int(temp)
        if 0 <= guess <= 100 :
            if guess == 100:
                print("你的评级为 S")
            elif 90 <= guess < 100:
                print("你的评级为 A")
            elif 80 <= guess < 90:  
                print("你的评级为 B")
            elif 60 <= guess < 80:
                print("你的评级为 C")
            else:
                print("你的评级为 D")
        else:
            print('成绩无效!')
        print()
    else:                               # 按下空回车或按下 'E' 或 'e' 结束
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-5 17:35:04 | 显示全部楼层
C:\Users\GFX\Desktop
我这里显示运行是没有问题的,你想问什么问题呢?
int就是把你输入的变量强行变成整数型变量的函数,input是输入一个str型(字符串)变量,这个后面会学到不用现在就刻意学
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-9-5 17:37:49 | 显示全部楼层
本帖最后由 jackz007 于 2022-9-5 17:47 编辑
temp = input("请输入你的成绩,接着会告诉你的成绩评级!!!")  # 如果你键入的是 98,那么 temp = '98',是的,它是一个字符串
guess = int(temp)                                          # 从字符串 temp 中提取数值,guess = 98
if guess < 60:                                             # guess 是数字,所以,可以和 60 直接比较大小,如果用 temp(字符串) 就不可以 
     print("你的评级为D")
else:
     if 60 <= guess < 80 :
         print("你的评级为C")
     else:
         if 80 <= guess < 90:
             print("你的评级为B")
         else:
             if 90 <= guess < 100:
                 print("你的评级为A")
             else:
                 print("你的评级为S")
        这个代码不够严谨,因为你输入 1000 试试
        分数的多分支判断应该使用 if ... elif ... elif ... else 句式,像下面这样:
temp = input("请输入你的成绩,接着会告诉你的成绩评级!!!") 
guess = int(temp)
if 0 <= guess <= 100 :
    if guess == 100:
        print("你的评级为S")
    elif 90 <= guess < 100:
        print("你的评级为A")
    elif 80 <= guess < 90:  
        print("你的评级为B")
    elif 60 <= guess < 80:
        print("你的评级为C")
    else:
        print("你的评级为D")
else:
    print('成绩无效!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-5 21:11:58 | 显示全部楼层
GFX2022 发表于 2022-9-5 17:35
我这里显示运行是没有问题的,你想问什么问题呢?
int就是把你输入的变量强行变成整数型变量的函数,inp ...

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

使用道具 举报

 楼主| 发表于 2022-9-5 21:14:02 | 显示全部楼层
jackz007 发表于 2022-9-5 17:37
这个代码不够严谨,因为你输入 1000 试试
        分数的多分支判断应该使用 if ... elif ... e ...

谢谢大佬,就是这个可以if和else语句并列使用吗?就是把你发的代码里的elif全部改为else
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-5 21:20:09 From FishC Mobile | 显示全部楼层
州洲不爱喝粥 发表于 2022-9-5 21:14
谢谢大佬,就是这个可以if和else语句并列使用吗?就是把你发的代码里的elif全部改为else

        不可以,一个 if 可以有多个 elif,但是,else 只能有一个。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-9-5 21:22:06 | 显示全部楼层
jackz007 发表于 2022-9-5 21:20
不可以,一个 if 可以有多个 elif,但是,else 只能有一个。

好的,谢谢大佬解惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-6 15:00:27 | 显示全部楼层
jackz007 发表于 2022-9-5 17:37
这个代码不够严谨,因为你输入 1000 试试
        分数的多分支判断应该使用 if ... elif ... e ...

大佬就是如果我想要让这个代码在输入e时就结束可以怎样改进啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-6 15:10:15 | 显示全部楼层    本楼为最佳答案   
州洲不爱喝粥 发表于 2022-9-6 15:00
大佬就是如果我想要让这个代码在输入e时就结束可以怎样改进啊
while True:
    temp = input("请输入你的成绩,接着会告诉你的成绩评级!!!") . strip()
    if temp and temp . lower() != 'e':
        guess = int(temp)
        if 0 <= guess <= 100 :
            if guess == 100:
                print("你的评级为 S")
            elif 90 <= guess < 100:
                print("你的评级为 A")
            elif 80 <= guess < 90:  
                print("你的评级为 B")
            elif 60 <= guess < 80:
                print("你的评级为 C")
            else:
                print("你的评级为 D")
        else:
            print('成绩无效!')
        print()
    else:                               # 按下空回车或按下 'E' 或 'e' 结束
        break
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-9-6 15:15:12 | 显示全部楼层

大佬,就是你看我直接在temp上加了一个while循环,这样报错是怎么回事啊
while guess==e
    temp = input("请输入你的成绩,接着会告诉你的成绩评级!!!")
    guess = int(temp)
    if 0 <= guess <= 100 :
        if guess == 100:
            print("你的评级为S")
        elif 90 <= guess < 100:
            print("你的评级为A")
        elif 80 <= guess < 90:  
            print("你的评级为B")
        elif 60 <= guess < 80:
            print("你的评级为C")
        else:
            print("你的评级为D")
    else:
        print('成绩无效!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-6 15:17:05 | 显示全部楼层

temp = input("请输入你的成绩,接着会告诉你的成绩评级!!!") . strip()
    if temp and temp . lower() != 'e':
为啥要加个!啊,还有strip是啥意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-6 16:06:59 From FishC Mobile | 显示全部楼层
本帖最后由 jackz007 于 2022-9-6 16:10 编辑

    s . strip() 是字符串方法,其作用是去掉字符串 s 首尾两端的空白字符(空格、回车、Tab 等),在本例中,如果键盘输入了 8 个空格加回车,那么,经过 strip() 处理后,等于什么都没有输入,字符串长度为 0。
        if temp 在字符串 temp 的长度不为零时候为 True,就是说,只要在键盘输入中存在非空白字符,那么,表达式的值就是 True。temp . lower() 会把字符串 temp 中的所有大写字母字符变为对应的小写字母,逻辑表达式 temp . lower() != 'e' 在字符串 temp 的内容不是 'E' 也不是 'e' 的时候为 True。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-6 18:06:19 | 显示全部楼层
jackz007 发表于 2022-9-6 16:06
s . strip() 是字符串方法,其作用是去掉字符串 s 首尾两端的空白字符(空格、回车、Tab 等),在本例 ...

好的,谢谢大佬解惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 16:19

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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