如何使部分代码进入循环而不重复 Python 中的代码

How to make a part of a code go in loop without duplicate the code in Python

我正在使用 pyttsx3 制作一个会说话的机器人。并且有效

import pyttsx3
f = pyttsx3.init()

a = input("type something: ")

if a == "hello":
    print(f.say("Hi How are you"))

f.runAndWait()

但是如果我希望代码在结束时重复操作,我的意思是如果我输入了一些东西并得到了响应,我将得到另一个“输入一些东西”的输入,而不需要重复这样的代码

import pyttsx3
f = pyttsx3.init()

a = input("type something: ")

if a == "hello":
    print(f.say("Hi How are you"))
f.runAndWait()

b = input("type something: ")

if b == "hi":
    print(f.say("Hi"))
f.runAndWait()
c = input("type something: ")

if c == "hey":
    print(f.say("hi hows going"))

f.runAndWait()

我试过做一个循环但没有成功

import pyttsx3
f = pyttsx3.init()

a = input("type something: ")

if a == "hello":
    print(f.say("Hi How are you"))

for a in f:
    print(a)

f.runAndWait()

所以它会一次又一次地询问我输入,而无需复制代码

我认为它应该可以,我真的不明白你的问题,但这最接近你的要求

import pyttsx3
f = pyttsx3.init()
while True:
    a = input("type something: ")
    if a == "hello":
        print(f.say("Hi how are you?"))
    elif a == "hi":
        print(f.say("Hi"))
    elif a == "hey":
        print(f.say("hi hows going"))
    f.runAndWait()

或者如果您想尝试功能,您可以尝试:

import pyttsx3
f = pyttsx3.init()
while True:
    nameoffunction()

def nameoffunction():
    a = input("type something: ")
    if a == "hello":
        print(f.say("Hi how are you?"))
    elif a == "hi":
        print(f.say("Hi"))
    elif a == "hey":
        print(f.say("hi hows going"))
    f.runAndWait()