class+while语句问题
希望当输入数值大于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!")
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)
if b > 6:
StudentX.StudyHours=6
print(f"My name is {StudentX.Name}, I should study {StudentX.StudyHours} hours per day!")
大于6时不需要用while,用if判断下直接改成6就行了。
另外,改的对象应该是StudentX.StudyHours,而不是b 你的代码有一些问题,主要是在while循环中没有对学习小时数进行更新。下面是修正后的代码:
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 -= 1
print(f"My name is {StudentX.Name}, I should study {b} hours per day!")
现在,无论输入的值是多少,都会输出正确的结果。当输入数值大于6时,循环会将数值逐渐减少到6,然后输出指定的字符串。当输入数值小于等于6时,循环不会执行,直接输出指定的字符串,并使用输入的数值作为学习小时数。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页:
[1]