在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)) 将提示错误消息:

我对堆栈溢出和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))
将提示错误消息:

"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
未在第二行中定义,因为它仅在
范围内定义,这只是第一行。