私はpython初心者で、whileおよびforループを使用していくつかの演習を実行するように求められました。終了するユーザーが<Return>
のみ。これまでのところ:
User = raw_input('Enter <Carriage return> only to exit: ')
running = 1
while running == 1:
Run my program
if User == # Not sure what to put here
Break
else
running == 1
私は試しました:(演習で指示されたとおり)
if User == <Carriage return>
そしてまた
if User == <Return>
しかし、これは無効な構文をもたらすだけです。最も簡単な方法でこれを行う方法について教えてください。ありがとう
他の何かを探している間に(しゃれはしませんが)私はこのページに出くわしました。これが私が使うものです:
while True:
i = input("Enter text (or Enter to quit): ")
if not i:
break
print("Your input:", i)
print("While loop has exited")
あなたが望む正確なもの;)
https://stackoverflow.com/a/22391379/3394391
import sys, select, os
i = 0
while True:
os.system('cls' if os.name == 'nt' else 'clear')
print "I'm doing stuff. Press Enter to stop me!"
print i
if sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
line = raw_input()
break
i += 1
実際、キーボードからキーが押されるまでループを実行するコードを探していると思います。もちろん、プログラムはユーザーが入力するのを常に待つべきではありません。
raw_input()
in python 3.0でinput()
を使用すると、プログラムはユーザーがキーを押す。kbhit()
関数を使用する必要があるもう少し複雑なことを行う必要があります- msvcrt
モジュール。実際、ActiveStateには、この問題に対処したレシピがあります。これに従ってください link
以下のリンクは、理解を深めるのにも役立ちます。
これがあなたの仕事を成し遂げるのに役立つことを願っています。
印刷ステートメントを使用して、raw_input
は、enter
を押すと戻ります。次に、テストを変更して、それと比較します。
if repr(User) == repr(''):
break
あなたはもうすぐそこです。これを行う最も簡単な方法は、空の変数を検索することです。これは、入力要求でEnterキーを押したときに取得されるものです。以下の私のコードは3.5です
running = 1
while running == 1:
user = input(str('Enter <Carriage return> only to exit: '))
if user == '':
running = 0
else:
print('You had one job...')
これはpython 3.5で並列スレッドを使用して機能します。特定のキーストロークのみに反応するようにこれを簡単に調整できます。
import time
import threading
# set global variable flag
flag = 1
def normal():
global flag
while flag==1:
print('normal stuff')
time.sleep(2)
if flag==False:
print('The while loop is now closing')
def get_input():
global flag
keystrk=input('Press a key \n')
# thread doesn't continue until key is pressed
print('You pressed: ', keystrk)
flag=False
print('flag is now:', flag)
n=threading.Thread(target=normal)
i=threading.Thread(target=get_input)
n.start()
i.start()
非常に簡単な解決策があり、可能な限り最も簡単な解決策を見たいとおっしゃっていたと思います。ループの停止後、ユーザーに続行を求めるプロンプトなど。
raw_input("Press<enter> to continue")
これが最良かつ最も簡単な答えです。 tryおよびexcept呼び出しを使用します。
x = randint(1,9)
guess = -1
print "Guess the number below 10:"
while guess != x:
try:
guess = int(raw_input("Guess: "))
if guess < x:
print "Guess higher."
Elif guess > x:
print "Guess lower."
else:
print "Correct."
except:
print "You did not put any number."
user_input=input("ENTER SOME POSITIVE INTEGER : ")
if((not user_input) or (int(user_input)<=0)):
print("ENTER SOME POSITIVE INTEGER GREATER THAN ZERO") #print some info
import sys #import
sys.exit(0) #exit program
'''
#(not user_input) checks if user has pressed enter key without entering
# number.
#(int(user_input)<=0) checks if user has entered any number less than or
#equal to zero.
'''
Enterキーを押すだけで変数Userがどのようになるかを調べる必要があります。完全な答えはお伝えしませんが、ヒント:通訳を解雇して試してみます。それほど難しくありません;)printのsepはデフォルトで '\ n'であることに注意してください(それは多すぎました:o)