2468246301 发表于 2020-5-18 04:42:30

难顶哦好兄弟

time = 2

while time > 1:
    temp = input("请输入你的分数:")
    score = int(temp)
    if0 <= score < 60:
      print("D")
    else:
      if60 <= score < 80:
            print("C")
      else:
            if 90 <= score < 100:
                print("A")
            else:
                if score == 100:
                  print("S")
                else:
                  if score == "e":
                        time = time - 2
                        print("完结撒花")
                  else:
                        print("你搁这逗我玩呢?")

就是做不到输入e就结束,我对比了下小甲鱼写的,他是在开头就把score不等于e就开始循环这个给写上了,我这个有办法改成输入e停下吗?(!=我还是百度的,小甲鱼又留超纲作业(手动狗头
感谢大佬们的帮助

KevinHu 发表于 2020-5-18 06:40:19

如果输入“e”的话这一行:score = int(temp)就会报错

KevinHu 发表于 2020-5-18 06:40:52

所以判断是否等于“e”的语句应该放到score = int(temp)这句的前面

KevinHu 发表于 2020-5-18 06:42:42

time = 2

while time > 1:
    temp = input("请输入你的分数:")
    if temp == "e":
      time = time - 2
      print("完结撒花")
    elif not temp.isdigit():
      print("输入错误!")
      break
    score = int(temp)
    if0 <= score < 60:
      print("D")
    else:
      if60 <= score < 80:
            print("C")
      else:
            if 90 <= score < 100:
                print("A")
            else:
                if score == 100:
                  print("S")
                else:
                  print("你搁这逗我玩呢?")

Twilight6 发表于 2020-5-18 07:47:58

本帖最后由 Twilight6 于 2020-5-18 07:57 编辑

input 是接受用户输入之后返回一个字符串类型的值
而 int是将数字符串转化为整型,若不是数字字符串就会报错,例如你想想,假设你input输入了个汉字,int如何把汉字转为整数?完全不可行,所以同理,python中就会导致报错

在你的代码基础上进行更改了下代码位置,其他没变:
time = 2

while time > 1:
    temp = input("请输入你的分数:")
    if temp == "e":
      time = time - 2
      print("完结撒花")
    else:
      score = int(temp)
      if0 <= score < 60:
            print("D")
      else:
            if60 <= score < 80:
                print("C")
            else:
                if 90 <= score < 100:
                  print("A")
                else:
                  if score == 100:
                        print("S")
                  else:
                        print("你搁这逗我玩呢?")

你到后面几课如果学到字符串方法和break,continue 和 elif 就可以更好解决这些问题了
例如字符串有个方法:isdigit()如果字符串只包含数字则返回 True,否则返回 False。作为判断条件,True后在将其转为int整型就不会报错
break 可以退出循环
continue 可以终止本次循环,开始下次循环
elif 只要前面同缩进下的elif 或 第一个 if 条件满足一个,之后的elif 都不会在进行判断
然后我们代码就可以这样改:
while 1:
    temp = input("请输入你的分数:")
    if temp.isdigit():# 这边判断你输入的是不是纯数字字符串,若是继续执行代码
      score = int(temp)
      if0 <= score < 60:
            print("D")
      elif60 <= score < 80:
            print("C")
      elif 90 <= score < 100:
            print("A")
      elif score == 100:
            print("S")
      else:
            print("你搁这逗我玩呢?")
    elif temp == "e":
      print("完结撒花")
      break

如果帮助到你了,记得给个最佳哦~{:10_287:}

heidern0612 发表于 2020-5-18 07:55:11

直接输入e就break掉循环不得了么?……

另外你的if else分支也不对 ..最好不要这么写,容易乱。

直接elif就好。

while 1:
    score = input("请输入你的分数,输入e退出:")
    if score == "e":
      print("退出当前程序")
      break
    else:
      score = int(score)
      if score == 100:
            print("S")
      elif score >= 90:
            print("A")
      elif score >=80:
            print("B")
      elif score >=70:
            print("C")   
      elif score >=60:
            print("D")
      else:
            print("不及格")
      


glitter_py 发表于 2020-5-18 09:58:54

{:10_266:}

2468246301 发表于 2020-5-18 20:16:04

heidern0612 发表于 2020-5-18 07:55
直接输入e就break掉循环不得了么?……

另外你的if else分支也不对 ..最好不要这么写,容易乱。


elif还没学呢哈哈,这个是什么意思啊

2468246301 发表于 2020-5-18 20:19:01

KevinHu 发表于 2020-5-18 06:40
所以判断是否等于“e”的语句应该放到score = int(temp)这句的前面

谢谢大佬
页: [1]
查看完整版本: 难顶哦好兄弟