Python - Создать строку с циклом for - PullRequest
0 голосов
/ 16 сентября 2018

Будучи новичком в Python, учитель завершил выполнение этих заданий, и я застрял на одном из них.Речь идет о поиске согласных в слове с использованием цикла for, а затем создайте строку с этими согласными.

У меня есть следующий код:

consonants = ["qwrtpsdfghjklzxcvbnm"]
summer_word = "icecream"

new_word = ""

for consonants in summer_word:
    new_word += consonants

ANSWER = new_word

цикл for, который я получаю, ноэто конкатенация, которую я на самом деле не получаю.Если я использую new_word = [], он становится списком, поэтому я должен использовать ""?Он должен стать строкой, если вы объедините несколько строк или символов, верно?Если у вас есть int, вы должны использовать str(int), чтобы объединить его.Но как мне создать эту строку согласных?Я думаю, что мой код здоров, но он не воспроизводится.

С уважением

Ответы [ 5 ]

0 голосов
/ 16 сентября 2018
consonants = "qwrtpsdfghjklzxcvbnm"
summer_word = "icecream"

new_word = ""


for letter in summer_word:
    if letter in consonants:
      new_word += letter

print(new_word)

Короче будет

consonants = "qwrtpsdfghjklzxcvbnm"
summer_word = "icecream"

new_word = ""

new_word = [l for l in summer_word if l in consonants]
print("".join(new_word))
0 голосов
/ 16 сентября 2018

Вы правы, если символ является числом, вы должны использовать str (int) для преобразования его в строковый тип.

consonants = ["qwrtpsdfghjklzxcvbnm"]
summer_word = "icecream"

new_word = ""
vowels = 'aeiou'
for consonants in summer_word:
    if consonants.lower() not in vowels and type(consonants) != int:
        new_word += consonants
answer = new_word

Здесь, внутри цикла for, вы оцениваете, если «согласные» не являются гласными и не являются целыми числами. Надеюсь, это поможет вам.

0 голосов
/ 16 сентября 2018

Проблема, с которой вы столкнулись, заключается в том, что вы создали переменные согласные в виде списка со строкой в ​​нем. Так что снимите квадратные скобки, и это должно работать

0 голосов
/ 16 сентября 2018

Ваш цикл в данный момент просто перебирает символы летнего слова. Название «согласные», которое вы даете «для согласных ...», является просто фиктивной переменной, на самом деле она не ссылается на определенные вами согласные. Попробуйте что-то вроде этого:

consonants = "qwrtpsdfghjklzxcvbnm" # This is fine don't need a list of a string.
summer_word = "icecream"

new_word = ""

for character in summer_word: # loop through each character in summer_word
    if character in consonants: # check whether the character is in the consonants list
        new_word += character
    else:
        continue # Not really necessary by adds structure. Just says do nothing if it isn't a consonant.

ANSWER = new_word
0 голосов
/ 16 сентября 2018

Строка в Python уже является списком символов и может рассматриваться как таковая:

In [3]: consonants = "qwrtpsdfghjklzxcvbnm"

In [4]: summer_word = "icecream"

In [5]: new_word = ""

In [6]: for i in summer_word:
   ...:     if i in consonants:
   ...:         new_word += i
   ...:

In [7]: new_word
Out[7]: 'ccrm'
...