为什么我会收到错误"无法转换' int'反对str含义"

时间:2015-02-12 05:01:59

标签: python string int concatenation

这只是我的计划的一小部分,所以我只是一块一块地创建它。所以我现在要做的就是让我的程序添加一个" *"如果输入小于或等于10,则为ast1但是我一直收到错误"无法转换' int'反对str含义"而且我不完全确定原因。有人可以在这里给我一个骨头并帮助我。

ast1 = "*"
count = 0

while (True):
    n = int(input("Enter a number between 0 - 100:"))
    if n<=10:
        ast1 = ast1 + 1 #This is where the error is occuring


print(ast1)

编辑代码:当用户输入&#34;完成&#34;?

时,如何让该程序终止/中断?
ast1 = ""
ast2 = ""
ast3 = ""
ast4 = ""


while (True):
    n = int(input("Enter a number between 0 - 100:"))
    if n>=0 and n<=25:
        ast1 = ast1 + "*"
    elif n>25 and n<=50:
        ast2 = ast2 + "*"
    elif n>50 and n<=75:
        ast3 = ast3 + "*"
    elif n>75 and n<=100:
        ast4 = ast4 + "*"
    else:break


print(ast1)
print(ast2)
print(ast3)
print(ast4)

3 个答案:

答案 0 :(得分:0)

因为ast1变量包含*,它被定义为字符串,1被定义为整数,所以字符串加整数连接是不可能的。对字符串变量和整数变量进行算术运算是不可能的。

答案 1 :(得分:0)

  

我现在尝试做的是让我的程序添加一个&#34; *&#34;如果输入小于或等于10

,则为ast1

你应该这样做:

ast1 = ast1 + '*'

或者,甚至更短:

ast1 += '*'

如果你想使用数学运算符,你可以使用乘数:

# will set ast1 to '**'
ast1 = ast1 * 2

但是当你第二次做乘法时,你当然会'****'。不确定这是否是您想要的。

你可以直接乘以星号 - 比如'*' * 3。它将返回'***'

答案 2 :(得分:0)

这个

ast1 = ast1 + 1 #This is where the error is occuring

应该是

ast1 = ast1 + str(1)

需要在Python中将数字显式地类型化为字符串,尤其是在字符串操作中。