I'm new to coding in python and I was filling out some code that required a number of inputs. One thing it asked for was for the program to perform an action if the user pressed the enter key and did not type in any input. My question is how you would get python to check for that. Would it be:
if input == "":
#action
Or is it something else? Thank you for the help.
Edit: Here is what my code currently looks like for reference.
try:
coinN= int(input("Enter next coin: "))
if coinN == "" and totalcoin == rand:
print("Congratulations. Your calculations were a success.")
if coinN == "" and totalcoin < rand:
print("I'm sorry. You only entered",totalcoin,"cents.")
except ValueError:
print("Invalid Input")
else:
totalcoin = totalcoin + coinN
As we know that Python's built-in input() function always returns a str(string) class object. So for taking integer input we have to type cast those inputs into integers by using Python built-in int() function.
Use an if statement to check if a user input is empty, e.g. if country == '': . The input() function is guaranteed to return a string, so if it returns an empty string, the user didn't enter a value.
You cannot pass a null input and try to convert it to int. But instead, you can strip the string, and see if its valid. If its not, just add 0 . If it is, add the number by converting it to an int.
I know this question is old, but I'm still sharing the solution to your problem as it could be a helpful hand to others. To detect no input in Python, you actually need to detect for "End of File" error. Which is caused when there is no input:
This can be checked by the following piece of code:
final=[]
while True:
try:
final.append(input()) #Each input given by the user gets appended to the list "final"
except EOFError:
break #When no input is given by the user, control moves to this section as "EOFError or End Of File Error is detected"
Hope this helps.
Actually an empty string would be
""
Instead of
" "
The latter is a space character
Edit
A few other notes
Don't use input
as your variable name that is a Python keyword
Comparing equality uses ==
instead of =
, the latter is an assignment operator, it attempts to modify the value of the left-hand side.
Just another tips:
In python you don't need to do equality test for empty string. Instead please use truth value testing. That is more pythonic.
if not coinN:
Truth value testing covers the following test:
Example:
>>> s = ''
>>> if not s:
... print 's is empty'
...
s is empty
>>>
I'm new to python and was looking for a fix to a similar problem. I know this is a really old post but I thought I would have a go at it. If I understand your problem correctly and what you're trying to achieve, this works fine for me. (As long as you don't try and enter a letter!) I posted earlier but it wasn't right, sorry.
totalcoins = None
coinN = None
sum_total = range
while coinN != '0' and totalcoins != '0':
coinN = input("Please enter first amount: ")
if coinN == "":
print("You didn't enter anything")
else:
totalcoins = input("Please enter second amount ")
if totalcoins == "":
print("You didn't enter anything")
else:
sum_total = int(coinN) + int(totalcoins)
if sum_total in range(100):
print('Sorry, you only entered {} cents'.format(sum_total))
else:
if sum_total == 100:
print('The sum of {0} and {1} is = 1 rand '.format(coinN, totalcoins, sum_total))
if sum_total >=100:
print('The sum of {0} and {1} is = {2} rand '.format(coinN, totalcoins, sum_total))
print("\n")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With