2016-10-01 9 views
-2

タイトルがちょっと面倒だと知っています。もし誰かがそれを修正したいのであれば、それは大歓迎です。それぞれの複数の文字でpythonリストを照会する方法

とにかく、複数の値を持つPythonリストをクエリするのに問題があります。私は他のStackoverflowの質問を見ていて、探しているものと一致するものはありません。

これは私が今まで持っていたコードで、forループステートメントを使用すると仮定して、各文字を通過してからif文を使用して、ユーザー入力の文字がリスト。私の例では

は、それだけのシンボルを使用しますが、うまくいけば、それは

string = input("What symbol character would you like to check") 
symbols=[' ', '!', '#', '$', '%', '&', '"', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~',"'"] 
def symbol(): 
    for string in symbols: 
     if string in symbols: 
      return True 
     elif string not in symbols: 
      return False 

if symbol(): 
    print('ok') 
if not symbol(): 
    print('What Happened?') 

は*更新、私もできるようにするソリューションを必要とするコードがある

とにかくここでの問題の多くをすべきではありません文字と数字だけでなく記号も受け入れる

たとえば、ユーザーが!aを入力すると、引き続き '!'が検出されます。真と評価する。

+0

ユーザ入力を 'symbol'関数に渡す必要があり、それを' symbols'の値と比較するために使用する必要があります。それとは別に、ある文字をチェックした後すぐに「戻る」ことはできません。 – thefourtheye

+0

ああ、以前はそれをやったけど、それを元に戻すのを忘れてしまったのですが、それがうまくいくかどうか教えてください。 –

+0

'for'ループでチェックする必要はありません。 ) – furas

答えて

1

入力文字列をループすると、探している解決策を手に入れることができます。このようなものはいかがですか?

input_string = raw_input("What symbol character would you like to check? ") 
symbols = [' ', '!', '#', '$', '%', '&', '"', '(', ')', '*', '+', ',', '-', '.', '/', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', '{', '|', '}', '~',"'"] 
def symbol(input_str): 
    for char in input_str: 
     if char in symbols: 
      return True 
    return False 

if symbol(input_string): 
    print('ok') 
else: 
    print('What Happened?') 

raw_input()は何らかのトラブルを回避します。変更する前に、unexpected EOF while parsingエラーが発生しました。あなたの変数の名前を少し変更して、潜在的な競合を避けるように変更しました。

return Falseループをforループの外側に移動すると、入力ストリングのすべての文字が最初にループでチェックされます。すべてをチェックして一致するものがない場合、デフォルトではFalseが返されます。

また、質問にsymbol()を2回電話しましたが、これは必要ではないと思います。 1つのifTrueの戻り値をチェックできます。それがないと、elseステートメントに移動し、関数がFalseを返すことを安全に知ることができます。

+1

こんにちは。最高の答えとしてあなたのソリューションをマークしました。ああ、シンボルへの2回の呼び出しに関しては、コードがうまく機能しているかどうかを確認する方法でした。それはちょうど私に安心の余分なビットを与える、あなたは知っていますか? –

+0

また、私はPython 3を使用していますが、あなたのソリューションはまだ動作しています。 :) –

関連する問題