如何在每次答案出来时都不重复打印答案?

时间:2017-10-02 03:30:16

标签: python-3.x

我有这个程序:

a = []
num = input('Enter numbers *Separate by using commas:')
num = num.split(",")
for i in num:
    a.append(i)

num = list(map(int,a))

print('~~Output~~')

for x in num:
    if x >= 10:
        print('Values >= 10 :',x,end = '~')

它出现了这样:

Enter numbers *Separate by using commas:12,1,10,5
~~Output~~
Values >= 10 : 12~Values >= 10 : 10~
>>> 

如何制作它以便像这样打印:

Enter numbers *Separate by using commas:12,1,10,5
~~Output~~
Values >= 10 : ~12~10~
>>> 

感谢。

是这样的:

a = []
num = input('Enter numbers *Separate by using commas:')

for i in num:
    if i >= 10:
        a.append(i)
        print('~' + '~'.join(a) + '~')

它会打印出来:

if i >= 10:
TypeError: '>=' not supported between instances of 'str' and 'int'
>>> 

我真的不明白......对不起......有一个更简单的人使用这个for循环吗?

2 个答案:

答案 0 :(得分:1)

我假设您打算在值之前打印标签?不是每个价值的一部分?

print('Values >= 10 :', end ='') 
for x in num:
    if x >= 10:
        print(x,end = '~')

你的第二个错误是你正在迭代一个字符串...你忘了分割逗号,并将字符串映射到整数

答案 1 :(得分:0)

将数字添加到列表中,然后打印出来。

numbersHigher = []
for x in num:
    if x >= 10:
        numbersHigher.append(x)

Zach King建议列表理解(谷歌如果你想了解更多)

numbersHigher = [x for x in num if x >= 10]

然后在循环后打印一次。 这是因为可能有2个数字而且你打印两次因为x高于1-2次。 编辑: 要像你想要的那样进行最后一次打印,你可以这样做:

import string
print('~' + '~'.join(numbersHigher) + '~')