web-dev-qa-db-ja.com

空のユーザー入力のデフォルト値

ユーザーがキーボードから値を入力する場合、ここでデフォルト値を設定する必要があります。ユーザーが値を入力できるコードは次のとおりです。

input = int(raw_input("Enter the inputs : "))

ここでは、値を入力してヒットした後、値は変数inputに割り当てられます Enter。値を入力せずに直接ヒットする方法はありますか Enter キー、変数はデフォルト値に直接割り当てられます。たとえば、input = 0.025

18
lkkkk
_input = int(raw_input("Enter the inputs : ") or "42")
_

どのように機能しますか?

何も入力されなかった場合、raw_inputは空の文字列を返します。 python is Falsebool("") -> False。の空の文字列。演算子orは最初のtrufy値を返します。この場合は_"42"_です。 。

ユーザーは何でも入力できるため、これは洗練された入力検証ではありません。 10個のスペースシンボル(True)。

50
aisbaa

次のようにできます:

>>> try:
        input= int(raw_input("Enter the inputs : "))
    except ValueError:
        input = 0

Enter the inputs : 
>>> input
0
>>> 
12
piokuc

最初に文字列を入力してから、長さ0と有効な数を確認できます。

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
1
Ber

方法の1つは-

default = 0.025
input = raw_input("Enter the inputs : ")
if not input:
   input = default

別の方法は-

input = raw_input("Enter the inputs : ") or 0.025
1
anuragal

上記の答えのほとんどは正しいですが、Python 3.7の場合、デフォルト値を設定するためにできることは次のとおりです。

user_input = input("is this ok ? - [default:yes] \n")
if len(user_input) == 0 :
    user_input = "yes"
0
grepit

そのために click library を使用することもできます。これは、コマンドラインインターフェイスに多くの便利な機能を提供します。

import click

number = click.Prompt("Enter the number", type=float, default=0.025)
print(number)

入力の例:

Enter the number [0.025]: 
 3  # Entered some number
3.0

または

Enter the number [0.025]: 
    # Pressed enter wihout any input
0.025
0
Georgy