在Python中,将范围中的项乘以整数
我对堆栈溢出和python非常陌生,所以请耐心听我说。我正在尝试编写一段代码,该代码将输出:在Python中,将范围中的项乘以整数,python,integer,range,Python,Integer,Range,我对堆栈溢出和python非常陌生,所以请耐心听我说。我正在尝试编写一段代码,该代码将输出: 0 x 8 = 0 1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64 9 x 8 = 72 我已在互联网上搜索并尝试了以下方法: x=(int(z)*8 for z in range(10)) print(str(z) + 'x 8 = ' + str(x)) 将提示错误消息:
0 x 8 = 0
1 x 8 = 8
2 x 8 = 16
3 x 8 = 24
4 x 8 = 32
5 x 8 = 40
6 x 8 = 48
7 x 8 = 56
8 x 8 = 64
9 x 8 = 72
我已在互联网上搜索并尝试了以下方法:
x=(int(z)*8 for z in range(10))
print(str(z) + 'x 8 = ' + str(x))
将提示错误消息:
"TypeError: can only concatenate list (not "str") to list"
"NameError: name 'z' is not defined"
我试过用‘item’代替‘z’,但运气不好
我知道这是一项非常基本的任务,但我能在网上找到的所有解决方案都与我已有的无效代码相同。感谢您提供的帮助。问题在于变量
z
仅在第一行(循环上下文中)定义,代码的其他行无法访问。相反,您将希望遍历这些值,并对每个项目执行操作和打印
for z in range(10):
print '{0} x 8 = {1}'.format(z, z * 8)
# 0 x 8 = 0
# 1 x 8 = 8
# 2 x 8 = 16
# 3 x 8 = 24
# 4 x 8 = 32
# 5 x 8 = 40
# 6 x 8 = 48
# 7 x 8 = 56
# 8 x 8 = 64
# 9 x 8 = 72
另一种方法是将乘法结果存储在x
(正如您已经做的那样)中,然后循环使用enumerate
来显示每个乘法结果以获得索引
x = [z * 8 for z in range(10)]
for k,value in enumerate(x):
print '{0} x 8 = {1}'.format(k, value)
试试这个:
x=(int(z)*8 for z in range(10))
print("\n".join(str(z) + ' x 8 = ' + str(y) for z, y in zip(range(10), x)))
x
是8
乘法的列表。然后使用for
循环迭代列表,并使用zip()
函数获取每一对。然后用指定换行符的\n
连接它。z
未在第二行中定义,因为它仅在的范围内定义,这只是第一行。