元祖的小问题
本帖最后由 光头小淘七 于 2022-11-15 16:41 编辑a=input().split()
b=tuple(a)
for i in b:
if i%7==0 or i[-1]==7:
print(i)
返回not all arguments converted during string formatting是怎么回事
>>> x = '1 2 3'.split()
>>> y = tuple(x)
>>> y
('1', '2', '3')
>>> # 此时 y 里面的元素都是字符串,执行 i%7==0 就会报错
>>> tommyyu 发表于 2022-11-15 16:25
输入一序列数字,以空格分隔开,将其转换为元组进行操作,输出元组内7的倍数或个位是7的数。
输入格式:
输入多个自然数,以空格分隔。
输出格式:
查找元组内7的倍数或个位是7的数输出,以空格分隔。
这是原题,我该如何修改
本帖最后由 jackz007 于 2022-11-15 16:39 编辑
a = tuple(map(int , input() . split()))
for k in a:
if k % 7 == 0 or k % 10 == 7 :
print(k , end = ' ')
print() 光头小淘七 发表于 2022-11-15 16:30
输入一序列数字,以空格分隔开,将其转换为元组进行操作,输出元组内7的倍数或个位是7的数。
输入格式 ...
a=input().split()
b=tuple(a)
for i in b:
if int(i)%7==0 or i[-1]==7:
print(i) tommyyu 发表于 2022-11-15 16:33
a=input().split()
b=tuple(a)
b=int(b)
for i in b:
if i%7==0 or i[-1]==7:
print(i)
这样或者
a=input().split()
b=tuple(eval(a))
for i in b:
if i%7==0 or i[-1]==7:
print(i)
为什么不行{:5_111:} 本帖最后由 jackz007 于 2022-11-15 16:43 编辑
光头小淘七 发表于 2022-11-15 16:36
这样或者
为什么不行
i%7==0 or i[-1]
是什么意思?
i % 7 == 0 在 i 是一个整型数的时候有效,i[-1] == - 7 只有在 i 是一个字符串的时候才会有效 >>> #第一种
>>> a = '1 2 3'.split()
>>> a
['1', '2', '3']
>>> b = tuple(a)
>>> b
('1', '2', '3')
>>> #此时 b 是一个元组,而元组不能被化为 int 类型,所以就会报错
>>> int(b)
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
int(b)
TypeError: int() argument must be a string, a bytes-like object or a number, not 'tuple'
>>> #第二种
>>> a = '1 2 3'.split()
>>> a
['1', '2', '3']
>>> #eval 函数的参数应该是一个字符串,比如像下面这样
>>> eval('1')
1
>>> eval('')
>>> eval('print("hello")')
hello
>>> #eval 函数会执行字符串里面的代码,如果字符串里面是一个对象,就会返回这个对象
>>> #但是 eval 函数不能输入列表
>>> eval()
Traceback (most recent call last):
File "<pyshell#16>", line 1, in <module>
eval()
TypeError: eval() arg 1 must be a string, bytes or code object
>>> eval(a)
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
eval(a)
TypeError: eval() arg 1 must be a string, bytes or code object
>>> jackz007 发表于 2022-11-15 16:41
是什么意思?
i的最后一位是7,题目要求最后一位是7 光头小淘七 发表于 2022-11-15 16:36
这样或者
为什么不行
还有,i[-1] == 7应该改成i[-1] == '7' 谢谢各位大佬!!!! 受益匪浅!!
光头小淘七 发表于 2022-11-15 16:42
i的最后一位是7,题目要求最后一位是7
那 i % 7 == 0 呢,i 到底是字符串还是整型数,如果是整型数, i[-1] 就要被 Python 报错,如果 i 是字符串,那么 i % 7 == 0 又是何意。 学习中,收获多多。
页:
[1]