0
Kind of a silly question for a def function Python
trying to get this def function to work for a string. without the def function the code works just fine ( yes I am sure it is not best practice and better ways to do it). def computegrade (score = float(input("Enter Score: "))): try: if score > 0.9 <= 1.0: print("A") elif score >= 0.8: print("B") elif score >= 0.7: print("C") elif score >= 0.6: print("D") elif score < 0.6: print("F") except: print('Please Enter Number') computegrade()
6 odpowiedzi
+ 1
Works fine for me, seems like you have something wrong in your libraries or you messed up something that... 'shouldn't be messed with' I guess? I dunno...
Unless you hard code the two " " literals, that introduces errors, if you do so (from a file or whatever, idk) try removing them first using regex and then introduce the params again.
EDIT: Unless you code the input() part inside the function, instead of as a default argument. Then use a separate function and loop it with try/catch until you have a valid input... Idk just thoughts
+ 1
input() returns a string object, so this is what works..
However taking the string from another source that enforces the two quotation marks, won't work straight away.
I input for example a, 2 or 4.5 and all these work.
0
Same thing with this code... need to prompt user if they enter other than a number.. works fine until I add def. my instructions say to take two "parameters"
def computepay(hrs = float(input('Enter Hours: ')),rate = float(input('Enter Rate: '))):
try:
#hrs = float(input('Enter Hours: '))
#rate = float(input('Enter Rate: '))
if hrs <= 40:
pay = (hrs * rate)
print('Pay',pay)
else:
if hrs > 40:
othrs = hrs - 40
print('Standard Pay:',(hrs - othrs) * rate )
print('Overtime Pay:', othrs * (1.5 * rate))
print('Total Pay:', ((hrs - othrs) * rate) + othrs * (1.5 * rate))
except:
print('Please Enter Numbers: ')
computepay()
0
I get this...
Enter Hours: xgbdf
Traceback (most recent call last):
File "C:/Users/aricd/PycharmProjects/Coursera/Coursera2.py", line 1, in <module>
def computepay(hrs = float(input('Enter Hours: ')),rate = float(input('Enter Rate: '))):
ValueError: could not convert string to float: 'xgbdf'
Process finished with exit code 1
0
So you were able to type a string and it worked ?
0
right. but I need for it to print the try/except if someone types a string. and I cant see to figure it out.