2016-11-13 7 views
0

私はpythonには新人ですが、これをテストしていて動作しません。私はどうすればいいのですか!= str:print( "それは名前ではありません")python 3

私は、ユーザーが名前を入力するためのもので、文字列の場合は "Hello" +名前を表示し、文字列でない場合は "これは名前ではありません"

name = str(input("What is your name? ")) 
if name != str: 
    input("Thats not your name! Please retype your name ") 
else: 
    print("Hello " + name) 

input("Press any button to close") 
+1

私は 'str()'の結果は常に文字列の値でなければならないと考えています。 "*と文字列でない場合は*"は実際には意味がありません。あなたはその条件に失敗するはずの入力例を提供できますか?空の文字列や空白だけを除外しようとしていますか?あるいは、特定の値を期待して、それが一致するかどうかをチェックしています(この場合、関数と文字列の両方で 'str'を使うとうまくいきません)。 –

+0

2つの発言:** 1。**あなたのコードを適切に書式化してください。** 2。**あなたの質問は不明です:入力を ' "Sam"または変数 'name'の* type *をチェックして文字列オブジェクト*であるかどうか確認しますか? – jadsq

+0

@jdasq私は質問のコードを編集することを提案しており、審査中のピアレビューです。私は "文字列" OPは文字だけを意味すると思います(名前は文字のみを含む必要があります)。しかし、OPはこれを確認しなければならない。 –

答えて

1

あなたが入力文字だけが含まれているかどうかを確認するためにpythonでisalpha functionを使用することができます)

は、ここに私のコードです。

これは動作するはずです:

name = input("What is your name? ") # REMOVED REDUNDANT EXPLICIT TYPE CAST 

if name.isalpha(): # CHECK IF IT ONLY CONTAINS LETTERS 
    print("Hello " + name) 
else: 
    name = input("Thats not your name! Please retype your name ") # NOT REQUIRED, BUT SINCE QUESTION WAS TO RE-ENTER 

input("Press any button to close") 

は、この情報がお役に立てば幸いです。

+0

こんにちは@corey pritchardこれが答えると回答があれば、チェックマークをクリックして受け入れてください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 –

0

最初に表示される印刷文では、「あなたの名前は何ですか?」という質問が表示されます。 コードの2行目では、生の入力がユーザーから取得され、 "name"という変数に格納されます。 if文には、 'name'がアルファベットかどうかを調べる関数 ".isalpha()"があります。そうであればTrueを返します。したがって、最初のprint文はアルファベットではなくFalseを返すならば、したがって、elseの後のprint文が出力されます。

print("What is your name?") 
name = input() 

if name.isalpha(): # 
    print("Hello " + name) 
else: 
    print("Thats not your name! Please retype your name ") 
+0

コードはまったく問題ありません。 – Inconnu

関連する問題