Schrijven van Python code
- Berichten: 264
Schrijven van Python code
Dag allemaal
Ik ben sinds begonnen zelfstudie Python ter voorbereiding voor de opleiding van ingenieur.
Na het bekijken van een video lecture, wou ik eens wat spelen met wat ik tot nu toe gezien heb maar ik krijg steeds een fout. Ik zie dus niet wat ik fout doe.
Hieronder de code die ik geschreven heb:
base_num = input("Enter base")
pow_num = input("Enter power")
def raise_to_power(base_num, pow_num):
result = 1
for index in range(pow_num):
result = result * base_num
return result
print( raise_to_power(base_num, pow_num))
Ik krijg dan de onderstaande output:
Enter base 2
Enter power 2
Traceback (most recent call last):
File "C:\Users\valer\PycharmProjects\Giraffe\app.py", line 10, in <module>
print( raise_to_power(base_num, pow_num))
File "C:\Users\valer\PycharmProjects\Giraffe\app.py", line 6, in raise_to_power
for index in range(pow_num):
TypeError: 'str' object cannot be interpreted as an integer
____________________________
Als base_num = int(input("Enter base")) en pow_num = int(input("Enter power)) zijn dan krijg ik gewoon een resultaat terug.
Maar ik wil dat ik voor base_num en pow_num om het even welk cijfer (decimaal of niet) kan invullen.
Daarom dacht ik om te scrhijven:
base_num = float(input("Enter base"))
pow_num = float(input("Enter power"))
def raise_to_power(base_num, pow_num):
result = 1
for index in range(pow_num):
result = result * base_num
return result
print( raise_to_power(base_num, pow_num))
Maar dan krijg ik weer een fout namelijk:
Enter base 2.2
Enter power 12.3
Traceback (most recent call last):
File "C:\Users\valer\PycharmProjects\Giraffe\app.py", line 10, in <module>
print( raise_to_power(base_num, pow_num))
File "C:\Users\valer\PycharmProjects\Giraffe\app.py", line 6, in raise_to_power
for index in range(pow_num):
TypeError: 'float' object cannot be interpreted as an integer
Ik hoop dat mijn vraag duidelijk is!
Groetjes
Valerion
Ik ben sinds begonnen zelfstudie Python ter voorbereiding voor de opleiding van ingenieur.
Na het bekijken van een video lecture, wou ik eens wat spelen met wat ik tot nu toe gezien heb maar ik krijg steeds een fout. Ik zie dus niet wat ik fout doe.
Hieronder de code die ik geschreven heb:
base_num = input("Enter base")
pow_num = input("Enter power")
def raise_to_power(base_num, pow_num):
result = 1
for index in range(pow_num):
result = result * base_num
return result
print( raise_to_power(base_num, pow_num))
Ik krijg dan de onderstaande output:
Enter base 2
Enter power 2
Traceback (most recent call last):
File "C:\Users\valer\PycharmProjects\Giraffe\app.py", line 10, in <module>
print( raise_to_power(base_num, pow_num))
File "C:\Users\valer\PycharmProjects\Giraffe\app.py", line 6, in raise_to_power
for index in range(pow_num):
TypeError: 'str' object cannot be interpreted as an integer
____________________________
Als base_num = int(input("Enter base")) en pow_num = int(input("Enter power)) zijn dan krijg ik gewoon een resultaat terug.
Maar ik wil dat ik voor base_num en pow_num om het even welk cijfer (decimaal of niet) kan invullen.
Daarom dacht ik om te scrhijven:
base_num = float(input("Enter base"))
pow_num = float(input("Enter power"))
def raise_to_power(base_num, pow_num):
result = 1
for index in range(pow_num):
result = result * base_num
return result
print( raise_to_power(base_num, pow_num))
Maar dan krijg ik weer een fout namelijk:
Enter base 2.2
Enter power 12.3
Traceback (most recent call last):
File "C:\Users\valer\PycharmProjects\Giraffe\app.py", line 10, in <module>
print( raise_to_power(base_num, pow_num))
File "C:\Users\valer\PycharmProjects\Giraffe\app.py", line 6, in raise_to_power
for index in range(pow_num):
TypeError: 'float' object cannot be interpreted as an integer
Ik hoop dat mijn vraag duidelijk is!
Groetjes
Valerion
- Moderator
- Berichten: 9.986
Re: schrijven van de code
Gebruik de knop voor codeweergave voor stukjes programma (volledige bewerker & voorbeeld, het knopje met </>)
Inspringen is belangrijk in python, daar blijft zo weinig van over!
Inspringen is belangrijk in python, daar blijft zo weinig van over!
- Moderator
- Berichten: 9.986
Re: schrijven van de code
De tweede fout komt omdat range alleen integers accepteert.
In
mag pow_num geen float zijn
In
Code: Selecteer alles
for index in range(pow_num):
-
- Berichten: 6
Re: Schrijven van Python code
Sorry, ik begrijp geen pyt maar in C
zou ik
int power(int x, int y)
{ int i, p;
p=1;
for(i= 1; i<=y ; ++i)
{ p = p * x;
}
return p
}
Dit is C uit K&R C language, maar python lijkt op C zo je kunt wellicht ook inspiratie opdoen met C, de moeder van veel talen.
Succes Onno
zou ik
int power(int x, int y)
{ int i, p;
p=1;
for(i= 1; i<=y ; ++i)
{ p = p * x;
}
return p
}
Dit is C uit K&R C language, maar python lijkt op C zo je kunt wellicht ook inspiratie opdoen met C, de moeder van veel talen.
Succes Onno
- Moderator
- Berichten: 9.986
Re: Schrijven van Python code
Wiskundig is dat mogelijk. je kunt 2,2 tot de macht 12,3 uitrekenen.
In Python kan dat ook,
Code: Selecteer alles
antwoord=2.2**12.3
Maar met een for-lus kun je alleen een geheel getal (integer) als macht gebruiken; je kunt een lus 0, 2 of 5 maal uitvoeren maar nooit 12,3 maal.
Het grondtal, base_num, mag natuurlijk wel een float zijn.