TypeError: ‘str’ object kan niet worden geïnterpreteerd als een geheel getal

Ik begrijp niet wat het probleem is met de code, het is heel eenvoudig, dus dit is een makkelijke.

x = input("Give starting number: ")
y = input("Give ending number: ")
for i in range(x,y):
 print(i)

Ik krijg een foutmelding

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

Als x bijvoorbeeld 3 is en y 14, wil ik dat het wordt afgedrukt

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

Wat is het probleem?


Antwoord 1, autoriteit 100%

Een eenvoudigste oplossing zou zijn:

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 geeft een string terug (raw_input in Python 2). int probeert het te ontleden tot een geheel getal. Deze code genereert een uitzondering als de tekenreeks geen geldige integertekenreeks bevat, dus u zou deze waarschijnlijk een beetje willen verfijnen met try/except-instructies.


Antwoord 2, autoriteit 26%

Je krijgt de foutmelding omdat range() alleen int-waarden als parameters gebruikt.

Probeer int() te gebruiken om uw invoer te converteren.


Antwoord 3, autoriteit 13%

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

P.S. Functie toevoegen int()


Antwoord 4, autoriteit 13%

x = int(input("Give starting number: "))
y = int(input("Give ending number: "))
for i in range(x, y):
    print(i)

Dit geeft het volgende weer:

ik heb de uitvoer geüpload met de code


Antwoord 5, autoriteit 4%

Ik vermoed dat je python3 gebruikt, waarin input(prompt) een string retourneert. Probeer dit.

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

Antwoord 6, autoriteit 4%

Je moet invoer x en y converteren naar int zoals hieronder.

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

Antwoord 7, autoriteit 4%

Je moet het volgende invullen:

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

Antwoord 8, autoriteit 4%

Of je kunt ook eval(input('prompt')) gebruiken.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Other episodes