2017-04-06 24 views
0

アルファベットの入力に時間がかかるプログラムを作成します。タイマーが正しくタイピングされるまでタイマーを止めることはありません。ミスを犯すと、メッセージが表示され、タイマーを再入力する必要があります。彼らがアルファベットを正しく入力することができれば、それは彼らがどれくらいの時間を取ったかを教えてくれるでしょう。私は以下の練習用のコードを(学校用の)Pythonで作成しようとしていますが、私は固執しています

私は最初の部分を行うために管理:

import time 

starttime = time.time() 

def ask_question1(): 
answer1= input("Type in the alphabet as fast as you can then press enter: ") 
return answer1 

if __name__=="__main__": 
    answer1=ask_question1() 
    while answer1 != "abcdefghijklmnopqrstuvwxyz": 
     print("You made a mistake. ") 
     answer1=input("Try again: ") 

endtime=time.time() 
print("It took you ",round(endtime-starttime, 2), " seconds") 

を私はそれが再び質問をすると、プロセスを繰り返すことはできません。

+0

あなたはunaccept' 'としてそれをマーク私の答えの問題は何ですか? – RaminNietzsche

答えて

0
  1. ask_question1機能は必要ありません、あなたは、Python 2に

  2. をPythonの3のinput またはraw_inputを使用することができますあなたは"abcdefghijklmnopqrstuvwxyz"を書く必要はありませんでした、あなたは、Python

  3. にはPython 2で string.lowercaseまたは string.ascii_lowercaseを使用することができます
  4. whit while Trueの場合はしばらくすることができ、ループを終了する場合はbrakeを使用します。

のPython 2:

import time 
import string 

if __name__=="__main__": 
    starttime = time.time() 
    answer1 = raw_input("Type in the alphabet as fast as you can then press enter: ") 
    while True: 
     if answer1 != string.lowercase: 
      print("You made a mistake. ") 
      answer1 = raw_input("Try again: ") 
     else: 
      endtime = time.time() 
      print("It took you " + str(round(endtime-starttime, 2)) + " seconds") 
      break 

のPython 3:

import time 
import string 

if __name__=="__main__": 
    starttime = time.time() 
    answer1 = input("Type in the alphabet as fast as you can then press enter: ") 

    while True: 
     if answer1 != string.ascii_lowercase: 
      print("You made a mistake. ") 
      answer1=input("Try again: ") 
     else: 
      endtime=time.time() 
      print("It took you ",round(endtime-starttime, 2), " seconds") 
      break 
0

)あなたが代わりに入力のask_question1代わりにanswer1=input("Try again: ")

0

使用raw_input()を(呼び出す必要がありそうです、これは、それを文字列として返します。

import time 

starttime = time.time() 

def ask_question1(): 
    return raw_input("Type in the alphabet as fast as you can then press enter: ") 

if __name__=="__main__": 
    while ask_question1() != "abcdefghijklmnopqrstuvwxyz": 
     print("You made a mistake. ") 

endtime=time.time() 
print("It took you ",round(endtime-starttime, 2), " seconds") 
0

これは動作するはずです。 raw_inputを使用し、関数を再帰的に呼び出します。

import time 

starttime = time.time() 

def ask_question1(): 
    answer1= raw_input("Type in the alphabet as fast as you can then press enter: ") 
    return answer1 

if __name__=="__main__": 
    answer1=ask_question1() 
    while answer1 != "abcdefghijklmnopqrstuvwxyz": 
     print("You made a mistake. ") 
     answer1=ask_question1() 

    endtime=time.time() 
    print("It took you ",round(endtime-starttime, 2), " seconds") 
0
import time 

starttime = time.time() 

def ask_question1(): 
    return raw_input("Type in the alphabet as fast as you can then press enter: ") 

if __name__=="__main__": 
    while ask_question1() != "abcdefghijklmnopqrstuvwxyz": 
     print("You made a mistake.Try again: ") 

endtime=time.time() 
print("It took you ",round(endtime-starttime, 2), " seconds") 
0
import time 

starttime = time.time() 

def ask_question1(): 
    answer1= input("Type in the alphabet as fast as you can then press enter: ") 
return answer1 

def check_answer(): 
    if __name__=="__main__": 
     answer1=ask_question1() 
     while answer1 != "abcdefghijklmnopqrstuvwxyz": 
      print("You made a mistake. ") 
      answer1=input("Try again: ") 
return 

endtime=time.time() 
print("It took you ",round(endtime-starttime, 2), " seconds") 
again=raw_input("Do you want to try again (Y/N):") 
if again=="Y": 
    check_answer() 

あなたはこのような何かを試すことができます。

0
import time 
starttime = time.time() 

def ask_question1(): 
    answer1= raw_input("Type in the alphabet as fast as you can then 
press enter: ") 
    return replying_question1(answer1) 

def replying_question1(answer): 
    while answer in "abcdefghijklmnopqrstuvwxyz": 
     endtime=time.time() 
     print("It took you ",round(endtime-starttime, 2), " seconds") 
     return round(endtime-starttime, 2) 
    print("You made a mistake. ") 
    ask_question1() 
if __name__=="__main__": 
    ask_question1() 

出力は次のようになります 失敗した:

Type in the alphabet as fast as you can then press enter: 3 
You made a mistake. 

正しい用:

代わりu)が使用入力を(使用できる場合にのみ、raw_inputの
Type in the alphabet as fast as you can then press enter: e 
('It took you ', 3.32, ' seconds') 

UR使ってPython 3

関連する問題