在同一行打印数字(Python)

时间:2017-10-16 14:15:10

标签: python

我有一个变量,它给出了每个循环从列表中获取的输出数字。

idx = 0
for i in y:
        listbyte = subprocess.check_output('python foo.py ' + path + str(y[idx]), shell=True).rstrip()
        idx += 1
        listnum = listbyte.decode()
        number = (listnum[0])
        print(number)
        u.append(listnum)

如果我打印number,输出格式为:

1
2
3
4
5

如果我将end = ''放在打印结尾处,则效果非常好,输出:12345

问题是:如何将此输出变为变量?我必须将这种格式用于程序中的一些代码,但从我看到的end = ''参数仅限于print()函数。

它应该是这样的:

a = number(listnum[0])
print(a)

>>>12345

由于

编辑:使用Megabeets回答,输出现在是:

0
09
091
0912
09126
091265
0912655
09126554
091265548

3 个答案:

答案 0 :(得分:1)

您可以使用a += (listnum[0]),如以下示例所示:

a = ''
idx = 0
for i in y:
        listbyte = subprocess.check_output('python foo.py ' + path + str(y[idx]), shell=True).rstrip()
        idx += 1
        listnum = listbyte.decode()
        a += (listnum[0])
        u.append(listnum)

然后a将是一个包含" 12345"

的字符串
>>> print(a)
12345

如果您希望a在结尾处是整数,而不是字符串,则可以使用int(a)

解析它

答案 1 :(得分:1)

您可以将这些数字存储在string中,然后将其转换为int,或者稍后附加到listjoin

示例以获取[1,5]的数字列表:

使用list

>>> nums = []
>>> for i in range(1,6): 
        nums.append(i) 

>>> nums
=> [1, 2, 3, 4, 5]
>>> ''.join(str(x) for x in nums)
=> '12345'
>>> int(''.join(str(x) for x in nums))
=> 12345

使用str

>>> nums = ''
>>> for i in range(1,6): 
        nums+=str(i)

>>> nums
=> '12345'
>>> int(nums)
=> 12345

甚至可以在没有任何转化的情况下进行数学

>>> nums=0
>>> for i in range(1,6): 
        nums=(nums*10)+i 

>>> nums
=> 12345

答案 2 :(得分:0)

打印5%(101%3)和(76 // 3)* 4