鱼C论坛

 找回密码
 立即注册
查看: 159|回复: 2

[已解决]class+while语句问题

[复制链接]
发表于 2024-3-22 15:43:50 | 显示全部楼层 |阅读模式
3鱼币
希望当输入数值大于6时,数值自动减少到6输出"My name is {StudentX.Name}, I should study 6 hours per day!",当输入数值小于6时候(比如X),输出 "My name is {StudentX.Name}, I should study {StudentX.StudyHours(X)} hours per day!")
以下是我写的代码,输出结果不合期待,但不知道怎么改,求助。

class Tired_Students:
    def __init__(self, Name, Study_hours):
        self.StudyHours=Study_hours
        self.Name=Name

a=input("what's your name?")
b=float(input("Your daily study hours:"))

StudentX=Tired_Students(a,b)

while b>6:
    b=b-1

else:
    print(f"My name is {StudentX.Name}, I should study {StudentX.StudyHours} hours per day!")

最佳答案
2024-3-22 15:43:51
  1. class Tired_Students:
  2.     def __init__(self, Name, Study_hours):
  3.         self.StudyHours = Study_hours
  4.         self.Name = Name
  5.    
  6. a = input("What's your name?")
  7. b = float(input("Your daily study hours:"))

  8. StudentX = Tired_Students(a, b)

  9. if b > 6:
  10.     StudentX.StudyHours=6

  11. print(f"My name is {StudentX.Name}, I should study {StudentX.StudyHours} hours per day!")
复制代码


大于6时不需要用while,用if判断下直接改成6就行了。
另外,改的对象应该是StudentX.StudyHours,而不是b

最佳答案

查看完整内容

大于6时不需要用while,用if判断下直接改成6就行了。 另外,改的对象应该是StudentX.StudyHours,而不是b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-22 15:43:51 | 显示全部楼层    本楼为最佳答案   
  1. class Tired_Students:
  2.     def __init__(self, Name, Study_hours):
  3.         self.StudyHours = Study_hours
  4.         self.Name = Name
  5.    
  6. a = input("What's your name?")
  7. b = float(input("Your daily study hours:"))

  8. StudentX = Tired_Students(a, b)

  9. if b > 6:
  10.     StudentX.StudyHours=6

  11. print(f"My name is {StudentX.Name}, I should study {StudentX.StudyHours} hours per day!")
复制代码


大于6时不需要用while,用if判断下直接改成6就行了。
另外,改的对象应该是StudentX.StudyHours,而不是b
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-3-22 15:44:04 | 显示全部楼层
你的代码有一些问题,主要是在while循环中没有对学习小时数进行更新。下面是修正后的代码:

  1. class Tired_Students:
  2.     def __init__(self, Name, Study_hours):
  3.         self.StudyHours = Study_hours
  4.         self.Name = Name
  5.    
  6. a = input("What's your name?")
  7. b = float(input("Your daily study hours:"))

  8. StudentX = Tired_Students(a, b)

  9. while b > 6:
  10.     b -= 1

  11. print(f"My name is {StudentX.Name}, I should study {b} hours per day!")
复制代码


现在,无论输入的值是多少,都会输出正确的结果。当输入数值大于6时,循环会将数值逐渐减少到6,然后输出指定的字符串。当输入数值小于等于6时,循环不会执行,直接输出指定的字符串,并使用输入的数值作为学习小时数。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 06:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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