Schrijven van Python code

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
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

Gebruikersavatar
Moderator
Berichten: 9.940

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!

Gebruikersavatar
Moderator
Berichten: 9.940

Re: schrijven van de code

De tweede fout komt omdat range alleen integers accepteert.

In

Code: Selecteer alles

for index in range(pow_num):
mag pow_num geen float zijn

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

Gebruikersavatar
Moderator
Berichten: 9.940

Re: Schrijven van Python code

Valerion schreef: zo 15 nov 2020, 19:35 Maar ik wil dat ik voor base_num en pow_num om het even welk cijfer (decimaal of niet) kan invullen.
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
wat je mogelijk ook al wist.

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.

Reageer