2017-03-28 1 views
-4

私はスタックオーバーフローを初めて経験しました。これが私の最初の質問です。私はPythonでループしていると私はやっていると私は質問があり、私はそれのためのプログラムを書く方法を知らない。問題は、文字を受け入れるかどうか、数字がアルファベットであるかどうかを確認すること、または 特別な文字と表示の適切なメッセージです。私はそれを試みましたが、うまくいきません。誰もプログラムの書き方についての提案はありますか?ユーザーが入力した文字を識別するプログラムを書く

+6

ようこそスタックオーバーフロー。 [質問する](http://stackoverflow.com/help/how-to-ask)および[編集](http://stackoverflow.com/posts/43061669/edit)の質問をお読みください。 – kazemakase

+1

これはうまくいきませんでした。あなたのコードを教えてください!そして[ask]を読んでください。 –

答えて

1

これは、次のコードのようになります。ユーザーから文字を受け取り、そのタイプを確認します。私はちょうどそれが特殊文字とみなすアルファベット、数字、スペースレストをチェックしました。要件に合わせて更新することができます。

input1 = raw_input("> Enter the character you want : ") 

if input1.isalpha(): 
    print "YOu entered an alphabet" 
elif input1.isdigit(): 
    print "YOu entered a number" 
elif input1.isspace(): 
    print "YOu entered a blank space" 
else: 
    print "you entered a special character" 
+0

あなたのバブルを爆発させないで**、**これは**浮動小数点型をサポートしていません。異なるデータ型の2つの文字がキーインされると、それらを特殊文字として読み取ります。 – mondieki

0

のベストプラクティスについては、これを試してみてください。

userInput = raw_input("Enter a string or a character: ") 

if userInput.isdigit(): 
    print ("Number") 
elif type(userInput).__name__=='str': 
    if userInput.isalpha(): 
     print ("Alphabet.") 
    else: 
     try: 
      left,right = userInput.split('.') 
      l_no, r_no = int (left), int (right) 
      print ("{}.{} is a float".format(left, right)) 
     except: 
      if any(char.isdigit() for char in userInput): 
       print ("{} has mixed characters.".format(userInput)) 
      else: 
       print ("Special character(s).") 

FLOATデータ型は、あまりにも数字として識別されています。乾杯。

しかし、あなたは文字が必要なので、NMN's answerはうまく動作します。

+0

OPの要件は、1文字の文字クラスを識別することです: "** **文字を受け入れる"。 –

+0

@ PM2Ring。ありがとうございました。 Dulyは指摘した! – mondieki

関連する問題