Python &引用;Return";外部功能
我知道这个问题很难回答,但我的程序一直告诉我“Return”是外部函数 因此,它应该做的是,如果用户按下“回车”,它应该停止。否则,它应该继续询问并解析输入 我想知道我在“我想要一个新的Python &引用;Return";外部功能,python,python-3.x,Python,Python 3.x,我知道这个问题很难回答,但我的程序一直告诉我“Return”是外部函数 因此,它应该做的是,如果用户按下“回车”,它应该停止。否则,它应该继续询问并解析输入 我想知道我在“我想要一个新的函数测试\u pig()中是怎么做的,它应该在输入中输入以下文字:快乐,鸭子,手套,邪恶,八,大声,水晶 sentence = input("Please enter a sentence: ") if sentence==[]: return vowels = ("a", "e", "i", "
函数测试\u pig()
中是怎么做的,它应该在输入中输入以下文字:快乐,鸭子,手套,邪恶,八,大声,水晶
sentence = input("Please enter a sentence: ")
if sentence==[]:
return
vowels = ("a", "e", "i", "o", "u", "y", "A", "E", "I", "O", "U", "Y")
words = sentence.split()
def pig(word):
for u in range(len(word)):
if word[u] in vowels:
return u
return -1
for word in words:
vowel = pig(word)
if(word[0] == 'y'):
print(word[1:] + word[0] + "ay", ' ', end='')
elif(vowel == -1):
print(word, ' ', end='')
elif(vowel == 0):
print(word + "way", ' ', end='')
else:
print(word[vowel:] + word[:vowel] + "ay", ' ', end='')
如果要退出整个程序,需要使用
exit()
,而不是return
。return
语句只能在函数内部使用。这就是为什么当你在第三行尝试时,会出现一个错误
但通常您会将“主代码”放在脚本的末尾,这意味着您通常不需要退出。例如,下面的一些代码将不断请求输入并在其上调用pig
,直到用户点击enter:
vowels = # etc.
def pig(word):
# your definition here
while True:
sentence = input("Please enter a sentence: ")
if not sentence:
break
words = sentence.split()
for word in words:
# your for-loop code here
中断
将退出循环,循环后没有代码,因此脚本将成功完成
您的代码还有其他问题,但这会让您克服第一个问题
作为旁注,我之所以将您的
if-句子==[]
更改为if-not-句子
,是因为句子
是一个字符串,任何字符串都不等于空列表。你可以检查一个空字符串,比如如果句子==''
。但是用not
检查空值更简单,也更符合python,这是您的实际缩进吗?是的,这是我的实际缩进在代码中为每个缩进级别使用一致的缩进-4空格,而不是有时4空格,有时一个制表符,有时4空格和一个制表符。有时候,你会侥幸逃脱,而且不会造成问题,但你绝对不应该指望它,因为当它真的导致问题时(我认为5:1的概率是你尝试我的答案时发生的概率),不可能知道原因。大多数编辑器都可以配置为即使在按tab键时也始终插入空格。然后使用-tt
标志运行Python(比如Python-tt myscript.py
而不是Python myscript.py
)来捕获问题这只打印输入,直到我按Enter键,所以它不会打印结果input@user3026270:如果您完全按照我上面所说的,复制并粘贴注释指示的代码,然后运行它,它肯定会打印输入的结果。你可以看到它这样做。显然你做错了什么,但是如果你不给我看你的代码,我就不能告诉你你做错了什么。@user3026270:如果你想让我猜,我怀疑你使用了制表符和空格的混合(就像你在原来的帖子中所做的那样),因此if
就Python而言,完全超出了而循环,即使它看起来像是在任何人类读者的for
循环中。所以,它读取你的输入,过滤每个单词,然后永远重复……然后,直到永远结束后,它才会打印结果。