TypeError:'str'对象不能解释为整数

时间:2013-10-07 20:56:13

标签: python types

我不明白代码的问题是什么,它非常简单,所以这很容易。

x = input("Give starting number: ")
y = input("Give ending number: ")

for i in range(x,y):
 print(i)

它给了我一个错误

Traceback (most recent call last):
  File "C:/Python33/harj4.py", line 6, in <module>
    for i in range(x,y):
TypeError: 'str' object cannot be interpreted as an integer

例如,如果x为3且y为14,我希望它打印

Give starting number: 4
Give ending number: 13
4
5
6
7
8
9
10
11
12
13

有什么问题?

8 个答案:

答案 0 :(得分:13)

最简单的解决方法是:

x = input("Give starting number: ")
y = input("Give ending number: ")

x = int(x)  # parse string into an integer
y = int(y)  # parse string into an integer

for i in range(x,y):
    print(i)

input返回一个字符串(Python 2中的raw_input)。 int尝试将其解析为整数。如果字符串不包含有效的整数字符串,则此代码将引发异常,因此您可能希望使用try / except语句对其进行一些优化。

答案 1 :(得分:2)

$(document).ready(function () {
        var count = 0;
        $(document).on('click', '.add', function () {
            var html = '';
            html += '<tr>';
            html +='<td><input type="text" name="change_name[]" class="form-control change_name" /></td>';
            html +='<td><textarea name="change_desc[]" class="form-control change_desc rows="3"" /></td>';
            html +='<td><input  type="text" name="change_GW[]" class="form-control change_GW" /></td>';
            html += '<td><input style="display:none;" id="business_' + count +
                '"  type="text" name="change_G[]" class="form-control change_GW" /></td>';

            html += '<td><select id="purpose_' + count +
                '" name="sex-type" class="form-control item_unit"><option value="0">select</option><option value="1">male</option><option value="2">Passing on to a client</option></select></td>';

            html +=
                '<td><button type="button" name="remove" class="btn btn-danger btn-sm remove"><span class="glyphicon glyphicon-minus"></span></button></td></tr>';
            $('#item_table').append(html);

            $('#purpose_' + count).on('change', function () {
                if (this.value == '1') {
                    $("#business_"+count).show();
                } else {
                    $("#business_"+count).hide();
                }

            });
            count++;
        });

        $(document).on('click', '.remove', function () {
            $(this).closest('tr').remove();
        });


    });

P.S。添加函数x = int(input("Give starting number: ")) y = int(input("Give ending number: "))

答案 2 :(得分:1)

我猜你正在运行python3,其中input(prompt)返回一个字符串。试试这个。

x=int(input('prompt'))
y=int(input('prompt'))

答案 3 :(得分:1)

你必须把:

X = input("give starting number") 
X = int(X)
Y = input("give ending number") 
Y = int(Y)

答案 4 :(得分:1)

您必须将输入x和y转换为int,如下所示。

x=int(x)
y=int(y)

答案 5 :(得分:1)

或者您也可以使用eval(input('prompt'))

答案 6 :(得分:1)

x = int(input("Give starting number: "))
y = int(input("Give ending number: "))

for i in range(x, y):
    print(i)

这将输出:

i have uploaded the output with the code

答案 7 :(得分:0)

您会收到错误消息,因为range()仅将int值作为参数。

尝试使用int()转换输入。