Как объединить все функции вместе

#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) или гласные верхнего регистра рассматриваются как самостоятельные символы