州洲不爱喝粥 发表于 2022-9-5 17:25:03

python新版第六讲的改进小游戏

这是什么问题呀,还有就是有大佬可以说下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")
看着就感觉怪怪的{:5_100:}

GFX2022 发表于 2022-9-5 17:35:04

C:\Users\GFX\Desktop
我这里显示运行是没有问题的,你想问什么问题呢?
int就是把你输入的变量强行变成整数型变量的函数,input是输入一个str型(字符串)变量,这个后面会学到不用现在就刻意学

jackz007 发表于 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('成绩无效!')

州洲不爱喝粥 发表于 2022-9-5 21:11:58

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

好的,谢谢

州洲不爱喝粥 发表于 2022-9-5 21:14:02

jackz007 发表于 2022-9-5 17:37
这个代码不够严谨,因为你输入 1000 试试
      分数的多分支判断应该使用 if ... elif ... e ...

谢谢大佬,就是这个可以if和else语句并列使用吗?就是把你发的代码里的elif全部改为else

jackz007 发表于 2022-9-5 21:20:09

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

      不可以,一个 if 可以有多个 elif,但是,else 只能有一个。

州洲不爱喝粥 发表于 2022-9-5 21:22:06

jackz007 发表于 2022-9-5 21:20
不可以,一个 if 可以有多个 elif,但是,else 只能有一个。

好的,谢谢大佬解惑

州洲不爱喝粥 发表于 2022-9-6 15:00:27

jackz007 发表于 2022-9-5 17:37
这个代码不够严谨,因为你输入 1000 试试
      分数的多分支判断应该使用 if ... elif ... e ...

大佬就是如果我想要让这个代码在输入e时就结束可以怎样改进啊

jackz007 发表于 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

州洲不爱喝粥 发表于 2022-9-6 15:15:12

jackz007 发表于 2022-9-6 15:10


大佬,就是你看我直接在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('成绩无效!')

州洲不爱喝粥 发表于 2022-9-6 15:17:05

jackz007 发表于 2022-9-6 15:10


temp = input("请输入你的成绩,接着会告诉你的成绩评级!!!") . strip()
    if temp and temp . lower() != 'e':
为啥要加个!啊,还有strip是啥意思
{:5_99:}

jackz007 发表于 2022-9-6 16:06:59

本帖最后由 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。

州洲不爱喝粥 发表于 2022-9-6 18:06:19

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

好的,谢谢大佬解惑
页: [1]
查看完整版本: python新版第六讲的改进小游戏