丿萧晨 发表于 2024-8-5 20:09:30

课后作业

为啥if语句中加号前的temp不能用year代替?换了就报错temp =input( ' please input a year:')
whiIe not temp.isdigit() :
       temp=input( " sorry temp please input int temp: :")      
if year/400 ==int(year/400) :
      print(year + "is run years ! ")
else:
      if (year/4 int(year/4)) and ( year / 100 ! = int(year/100) ) : print(temp + "is run' ) print(temp + "not run• )

FishC 发表于 2024-8-5 20:13:51

哈哈,看来你在处理年份和闰年判断的代码时遇到了一些小麻烦。让我来帮你理清楚这个代码的问题。

首先,`temp` 和 `year` 是两个不同的变量。在你的代码中,`temp` 是从用户输入的字符串,而 `year` 是用来判断是否为闰年的数字。如果你想用 `year` 替代 `temp`,那么你需要确保 `year` 也是一个字符串,或者在赋值的时候直接进行类型转换。但这里要注意的是,使用 `year` 的时候,它应该是一个整数,而不是字符串。

下面是一些代码示例和改正建议:

# 获取用户输入并检查是否是数字
temp = input('please input a year: ')
while not temp.isdigit():
    temp = input("sorry, please input an integer year: ")

# 将字符串转换为整数
year = int(temp)

# 检查是否是闰年
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
    print(year, "is a leap year!")
else:
    print(year, "is not a leap year.")

1. 在这个示例中,我们先获取用户的输入,并使用 `isdigit()` 方法来检查输入的内容是否只包含数字。如果用户输入了无效的内容,就会反复请求输入。

2. 使用 `int(temp)` 将字符串转换为整数,并赋值给 `year`。

3. 接下来,使用模运算符 `%` 来判断闰年的条件。注意条件的逻辑:如果能被400整除,则是闰年;如果能被4整除但不能被100整除,也是假年。

4. 最后,我们通过 `print()` 函数输出结果。

所以,`temp` 的角色是负责接收用户的输入,而 `year` 则是真正进行闰年判断的数字。希望这能帮助你理解,如果还有问题,欢迎随时问我!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2024-8-5 20:14:20

while写错了

Rick.Z 发表于 2024-8-5 20:26:41

前面的temp也要改成year{:10_256:}

jackz007 发表于 2024-8-5 20:54:55

本帖最后由 jackz007 于 2024-8-5 20:57 编辑

       假如键入的是 2024,那么,temp = '2024',year = int(temp) = 2024,就是说,temp 是字符串,year 是整型数
temp+ 'is run'
       是字符串 + 字符串,是正确的,而
year + 'is run'
       是整型数 + 字符串,自然是不允许的

三体人的智子 发表于 2024-8-5 21:06:19

unsupported operand type(s) for +: 'int' and 'str'

if-else语句中,不能把整型和字符串型数据加一起,会报错

Twilight6 发表于 2024-8-6 09:05:49

错误点有点多,首先第一眼

关键字错误:while 而不是 whiIe 是 l 不是 I 哦

符号使用中文字符:冒号 ":" 改成英文字符 ":",中文"()"改成英文字符 "()",感叹号也用成中文的了

最后缩进有点不太对劲,建议缩进按照一个 Tab = 4空格

最后代码中,temp 接受 input 返回值默认为 str 字符串

你转换成 int 整型时,进行条件判断后想进行拼接到字符串中时,应该转换回 str,而不能直接使用 int 和 str 进行拼接

修改后的代码:

temp = input('Please input a year: ')
while not temp.isdigit():
    temp = input("Sorry, please input an integer year: ")

year = int(temp)

if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
    print(str(year) + " is a leap year!")
else:
    print(str(year) + " is not a leap year.")

sfqxx 发表于 2024-8-6 12:55:15

while 写错了

丿萧晨 发表于 2024-8-6 14:47:11

用 'year' 代替 str(year)也可以对吧
页: [1]
查看完整版本: 课后作业