#python #function
#питон #функция
Вопрос:
Я хочу создать функцию, которая может отображать первый символ, последний символ, количество символов и количество гласных в строке, поэтому я делаю это
gt; def text(a): gt; result = a[0] gt; return result; gt; def text (a): gt; result = a[-1] gt; return result gt; def text(a): gt; result= text.len(original_str) gt; return result gt; vowels = {'a','e','i','o','u'} gt; text = "a" gt; for a in my_string: gt; if a in vowels: gt; len(a) gt; Text("American") Expected out put first_char = A Last_char = n num_char = 8 num_vowels = 4
как заставить функцию работать в одно время, когда я помещаю «текст»
надеюсь, вы все сможете помочь
Ответ №1:
Вы не хотите каждый раз писать другую функцию. Просто включите все, что вы хотите найти, в одну функцию.
def Text(a): first_char = a[0] last_char = a[-1] num_char = len(a) num_vowels = sum([l in "aeiou" for l in a.lower()]) print("first_char:", first_char) print("last_char:", last_char) print("num_char:", num_char) print("num_vowels:", num_vowels) Text("American")
Выход:
first_char: A last_char: n num_char: 8 num_vowels: 4
Ответ №2:
Похоже, вы совсем новичок в python, поэтому я сделал следующее дольше, чем необходимо, чтобы обеспечить комментарии и ясность. Ключевым моментом является определение всех вещей, которые вы хотите, чтобы ваша функция возвращала, а затем убедитесь, что вы их получили, а затем верните все сразу.
def text(a): first = a[0] #Store first element in string last = a[-1] #Store last element in string length = len(a) #Store length of string nVowel = 0 #Variable to count vowels vowels = {'a','e','i','o','u'} #Set of vowels for s in a.lower(): #Loop over all characters in lower case if s in vowels: #Check if character is a vowel nVowel = 1 #Add to count if vowel return (first, last, length, nVowel) #Return results print(text("American"))
Это можно сделать значительно короче, но я оставлю это вам как возможность попрактиковаться и понять, что происходит.
Ответ №3:
Вы можете выполнить их все в одной функции и просто вернуть все значения в большом куске. Основная проблема с вашим исходным кодом заключается в том, что код не только с самого начала плохо работает, но и вы постоянно перезаписываете свою функцию. Также ваши гласные были представлены фигурными скобками {} вместо квадратных скобок [], которые используются в python.
def Text(string): # Calculate first = string[0] last = string[-1] length = len(string) vowels = sum([string.lower().count(v) for v in ["a", "e", "i", "o", "u"]]) # Return return first, last, length, vowels first_char, last_char, num_char, num_vowels = Text("American") # Or for any other string
Комментарии:
1.
string.lower().count(v)
или гласные верхнего регистра рассматриваются как самостоятельные символы