gpt4 book ai didi

python - 为什么将更多条件传递给此函数时出现错误

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:26 26 4
gpt4 key购买 nike

我想创建一个函数,它会给出输入范围,同时在满足特定条件时更改值。

def num(u) :
for x in range(1,u):
if (x) %2==0:
x ='love'
print x
print num(10)

输出:

1
love
3
love
5
love
7
love
9

“哇,这太棒了”(我想)。然后我决定添加更多条件,让我的程序看起来更成熟。嗯,不是我想的那样!!!

def num(u) :
for x in range(1,u):
if (x) %2==0:
x ='love'
print x
if (x) %3==0:
x ='fux'
if (x) %5==0:
x ='buzz'

打印时我得到:

output :
/data/data/org.qpython.qpy/files/bin/qpython.sh "/storage/sdcard0/qpython/scripts/.last_tmp.py" && exit
python/scripts/.last_tmp.py" && exit <
Traceback (most recent call last):
File "/storage/sdcard0/qpython/scripts/.last_tmp.py", line 8, in <module>
print num (10)
File "/storage/sdcard0/qpython/scripts/.last_tmp.py", line 5, in num
if (x) %3==0:
TypeError: not all arguments converted during string formatting
1|u0_a115@g150_g:/ $

此时如何传递更多条件。

最佳答案

这是由于您设置条件语句的方式所致。想想其中一个案例为真后会发生什么。 x % 2 == 0 通过后,将 x 的值更改为 "love"。任何后续条件现在都将引用 x 的新值,当然,尝试对字符串使用模数运算没有任何意义,因此会导致错误。

要解决此问题,请使用不同的变量来存储结果字符串,或者直接打印它,而不是覆盖 x 的值。

另一种方法是将 if 语句链更改为 if/elif/else 序列,以保证只有一个代码块会执行。

关于python - 为什么将更多条件传递给此函数时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42860261/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com