【问题标题】:Vowel counter using 2 arguments使用 2 个参数的元音计数器
【发布时间】:2013-08-06 18:52:48
【问题描述】:

我必须创建两个函数,一个向用户询问字符并通过返回 true 或 false 来确定字符是否为元音。

第二个是调用第一个函数,让用户输入一个单词。

这是我目前所拥有的:

vowel = ["A","E","I","O","U","a","e","i","o","u"]
vowelinpt = input("Please enter a character: ")
def isVowel(x):
    if x in vowel:
        return True
    else: 
        return False

a = isVowel(vowelinpt)
print(a)

def countvowel(b):
    count = 0
    for a in b:
        if isVowel(a) == True
        count +=1
    return count

x = input("Please input a WORD: ")
y = countvowel(x)
print(y)

关于如何实际计算元音的正确数量有什么想法吗?

【问题讨论】:

  • 为什么要向用户询问角色?你已经问过他/她了。
  • 抱歉,有什么问题吗?你有错误吗?你得到的输出看起来不像你期望的那样吗?
  • 您的代码很草率,甚至无法在您输入时运行。如果您希望人们花时间帮助您,您也需要这样做。就目前而言,您的第二个 IF 语句的语法是错误的。你的缩进到处都是。使用输入会给你一个错误。查看输入文档表明,在这种情况下,您应该使用raw_input() 而不仅仅是input()。 python 解释器会告诉你这一点,你可以修复它。
  • @Rejected - 好朋友。我同意他的格式很差,但没有必要为此杀了他。还有,他明明用的是Python 3.x,也就是说用input是对的。
  • 任务是要求一个字符,然后要求一个单词。这就是我被指示做的事情

标签: python recursion counter


【解决方案1】:

您的代码看起来不错(除了我认为是复制粘贴错误的错误缩进)。只是一些小项目。

如果你有

if somethingBoolean: return True
else: return False

你可以简单地写

return somethingBoolean

因此:

def isVowel(x): return x in vowels

现在要计算,你只是压错了:

def countvowel(b):
    count = 0
    for a in b:
        if isVowel(a): count += 1
    return count

我希望这能解决问题。

【讨论】:

  • 太棒了!非常感谢我是如此接近有点..哈哈
【解决方案2】:

您的countvowel 功能非常混乱。 count 0 不是有效的语法,并且您的缩进是错误的。我认为您的主要问题是您的 return 语句在循环内。当 Python 执行 return 时,函数会停在那里并返回值。它不会继续执行该功能。如果return 在循环内,则将其移出循环。

【讨论】:

  • 我明白了,是的,return 声明似乎是个大问题。感谢您的提醒。
【解决方案3】:

countvowel 的问题是缩进搞砸了,if 语句后缺少一个“:”。这将解决它:

def countvowel(b):
    count = 0
    for a in b:
        if isVowel(a) == True:
            count +=1
    return count

但是,您真的可以像这样简化整个事情:

vowels = "aeiou"
vowelinpt = input("Please enter a character: ")
def isVowel(x):
   return x.lower() in vowels
a = isVowel(vowelinpt)
print(a)

def countvowel(b):
    # You can also do "return sum(a in vowels for a in b.lower())"
    return len(list(filter(isVowel, b.lower())))
x = input("Please input a WORD: ")
y = countvowel(x)
print(y)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-24
    • 2013-08-09
    • 2018-12-26
    相关资源
    最近更新 更多