2017-08-22 23 views
0

こんにちは私は学生ですし、私のコードでいくつかのエラーがあります。 問題は、単語と整数のリストを入力して入力し、単語の長さが整数より大きい場合はその単語を返します。 これは私の答えです。Pythonで文字列の長さを計算する方法

def filter_long_words(string): 
string = raw_input("Enter a words : ") 
n = raw_input("Enter an integer : ") 

count = 0 
for letter in string: 
    count = count + 1 
print "The total string are : ", count 

return count 

filter_long_words(string) 
if count > n: 
    print string 
+0

何が出力されているのですか – 0decimal0

+0

整数を読み込み中に、 'raw_input'の戻り値をキャストします。文字列の長さを取得するには 'len()'を使い、 '=='を使って整数と比較してください。 – Haris

+0

'count'は文字列中の文字の数を返します – 0decimal0

答えて

1

Uはlen()

例に任意の文字列の長さを得ることができる:

print (len("string")) 

結果:

6 

ここでは簡単な例である:

であなたの質問は、指示が以下の通りであると述べました。

単語の長さが整数より大きい場合、単語を返します。

def filter_long_words(): 
    my_str = raw_input("Enter a word: ") 
    n = raw_input("Enter an integer: ") 
    if len(my_str) > int(n): 
     return my_str # assigns the results of my_string to some_word 

some_word = filter_long_words() 

print some_word 

最後の一つの例:コメント欄にあなたの質問に応えて

my_str = raw_input("Enter a word: ") 
n = raw_input("Enter an integer: ") 

def filter_long_words(my_str, n): 
    if len(my_str) > int(n): 
     return my_str # assigns the results of my_string to some_word 

some_word = filter_long_words(my_str, n) 

print some_word 

以下のコードは、それを行います。 1つの大きな文字列として複数の単語を入力しているとします。

.split()を使用して各単語を取得し、別々にテストすることができます。

# simulates raw input of 4 words being typed in at once. 
list_of_words_as_a_string = "One Two Three Four" 
n = raw_input("Enter an integer: ") 

def filter_long_words(word, n): 
    if len(word) > int(n): 
     print word 
     return word # this is only useful if you are doing something with the returned word. 

for word in list_of_words_as_a_string.split(): 
    filter_long_words(word, n) 

結果整数として3を使用して:あなたはlen()

string = raw_input("Enter a words : ") 
n = int(raw_input("Enter an integer : ")) # convert the input to integer 

if len(string) > n : 
    print(string) 
+0

なので、入力文字列と整数を関数定義に含めてはいけませんか? –

+0

もしあなたが好きなら、それらはできます。 raw_inputを関数の先頭に移動し、関数から引き数を削除するだけです。 –

+0

@Asyiqin私は関数の中の 'raw_input'で2番目の例を追加しました –

1

あなたはの長さを取得するにはlen機能を使用することができます文字列。

すなわち

def filter_long_words(): 
    string = raw_input("Enter a words : ") 
    n = raw_input("Enter an integer : ") 

    print ("The total string are : ", len(string)) 
    if len(string) > int(n): 
    return string 
+0

あなたの例はうまくいきますが、文字列のlenがintより大きい場合、OPは単語を "返す"ように指示されました。したがって、この例は私が思うはずの関数でなければなりません。 –

0

で文字列の長さを得ることができます

Enter an integer: 3 
Three 
Four 
+1

インデントがオフです。 –

+0

'string'を後でユーザー入力とすれば、それを引数としてどのように使うのでしょうか? – Deuce

+0

私の意図は、 'len'関数を使って文字列の長さを取得することでした。 –

2

私はあなたが一つの単語のか、いくつかの単語の長さをチェックする必要があり、唯一の十分な長さのものを保持している場合、私は理解していないです。他の人が一つの単語のために答えているので、私はいくつかの言葉を答えています:

string = raw_input("Enter several words: ") 
n = int(raw_input("Enter an integer: ")) 


def filter_long_words(string, n): 
    long_words = [word for word in string.split() if len(word) > n] 
    return long_words 

print filter_long_words(string, n) 

だから、string = 'one two three four five six'n = 3場合、出力は['three', 'four', 'five']になります。

+0

はい、まさにその方法です。 'split'はオプションです。 – 0decimal0

+3

これはおそらくOPが探していたものです。 '言葉を入力する'私たちのすべてをオフに投げていたと思う。 –

+0

@SierraMountainTech申し訳ありませんが、間違いでした。「単語のリストを入力します。スプリットの機能は何ですか? –

関連する問題