鱼C论坛

 找回密码
 立即注册
查看: 213|回复: 8

[已解决]课后作业

[复制链接]
发表于 2024-8-5 20:09:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为啥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• )
最佳答案
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.")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-5 20:14:20 | 显示全部楼层
while写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-5 20:26:41 | 显示全部楼层
前面的temp也要改成year
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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'
       是整型数 + 字符串,自然是不允许的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-5 21:06:19 | 显示全部楼层
unsupported operand type(s) for +: 'int' and 'str'

if-else语句中,不能把整型和字符串型数据加一起,会报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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.")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-8-6 12:55:15 | 显示全部楼层
while 写错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-8-6 14:47:11 | 显示全部楼层
'year' 代替 str(year)
也可以对吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 17:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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