Hier moet ik de standaardwaarde instellen als de gebruiker de waarde vanaf het toetsenbord invoert. Hier is de code die de gebruiker kan invoeren:
input = int(raw_input("Enter the inputs : "))
Hier wordt de waarde toegewezen aan een variabele input
na het invoeren van de waarde en het indrukken van Enter. Is er een methode dat als we de waarde niet invoeren en direct op de Enter-toets drukken, de variabele direct wordt toegewezen aan een standaardwaarde, bijvoorbeeld als input = 0.025
?
Antwoord 1, autoriteit 100%
Python 3:
input = int(input("Enter the inputs : ") or "42")
Python 2:
input = int(raw_input("Enter the inputs : ") or "42")
Hoe werkt het?
Als er niets is ingevoerd, retourneert input
/raw_input
een lege tekenreeks. Lege string in Python is False
, bool("") -> False
. Operator or
retourneert de eerste waarheidswaarde, in dit geval "42"
.
Dit is geen geavanceerde invoervalidatie, omdat de gebruiker alles kan invoeren, b.v. tien spatiesymbolen, wat dan True
zou zijn.
Antwoord 2, autoriteit 11%
Je kunt het als volgt doen:
>>> try:
input= int(raw_input("Enter the inputs : "))
except ValueError:
input = 0
Enter the inputs :
>>> input
0
>>>
Antwoord 3, autoriteit 9%
Een manier is:
default = 0.025
input = raw_input("Enter the inputs : ")
if not input:
input = default
Een andere manier kan zijn:
input = raw_input("Number: ") or 0.025
Hetzelfde geldt voor Python 3, maar met input()
:
ip = input("Ip Address: ") or "127.0.0.1"
Antwoord 4, autoriteit 6%
Je kunt daarvoor ook de click
bibliotheekgebruiken, die veel nuttige functionaliteit biedt voor opdrachtregelinterfaces:
import click
number = click.prompt("Enter the number", type=float, default=0.025)
print(number)
Voorbeelden van invoer:
Enter the number [0.025]:
3 # Entered some number
3.0
of
Enter the number [0.025]:
# Pressed enter wihout any input
0.025
Antwoord 5, autoriteit 2%
De meeste van de bovenstaande antwoorden zijn correct, maar voor Python 3.7 kunt u het volgende doen om de standaardwaarde in te stellen.
user_input = input("is this ok ? - [default:yes] \n")
if len(user_input) == 0 :
user_input = "yes"
Antwoord 6, autoriteit 2%
U kunt eerst een tekenreeks invoeren en vervolgens controleren op lengte nul en geldig nummer:
input_str = raw_input("Ender the number:")
if len(input_str) == 0:
input_number = DEFAULT
else:
try:
input_number = int(input_str)
except ValueError:
# handle input error or assign default for invalid input
Antwoord 7
Hier is een voorbeeld om gebruikersinvoer te valideren als een getal en ook om de standaardwaarde in te stellen als hij niets invoert.
while True:
luckyNo = input("Enter your lucky number - [default:108]: ").strip()
if luckyNo.isdigit(): # check if user entered a number
luckyNo = int(luckyNo) # convert entered number to integer
break
else:
if not luckyNo: # user entered nothing
print("You entered nothing. Using default value...")
luckyNo = 108 # set default value
break
else: # user entered something other than a number
print("Wrong input!. Try again.")
print("Your lucky number is " + str(luckyNo))