我撰寫了以下 Python 代碼。
def myFun(**kwargs):
for key, value in kwargs.items():
print("%s = %s" % (key, value))
# Driver code
a = input("Enter first word")
b = input("Enter second word")
c = input("Enter third word")
d = input("Enter fourth word")
e = input("Enter fifth word")
myFun(first=a, second=b, third=c, fourth=d, fifth=e)
如您所見,上面的代碼從用戶那里獲取 5 個變數作為輸入,然后將它們列印出來。
現在這里的挑戰是,如果用戶輸入“Hello”,則不應列印。
例如,如果假設第三個單詞是“Hello”,那么函式呼叫中不應出現“third=c”。因此,函式呼叫將如下所示。
myFun(first=a, second=b, fourth=d, fifth=e)
請注意,“你好”只是一個例子,我可以有很多這樣的詞。
此外,'Hello' 可以出現在多個變數中。例如,如果假設第三個和第五個單詞是“Hello”,那么函式呼叫中不應出現“third=c”和“fifth=e”。因此,函式呼叫將如下所示。
myFun(first=a, second=b, fourth=d)
我無法對函式定義進行任何更改。
我知道我可以根據條件撰寫多個函式呼叫,但有更好的方法嗎?
uj5u.com熱心網友回復:
用字典呼叫函式。
def myFun(**kwargs):
for key, value in kwargs.items():
print("%s = %s" % (key, value))
def main():
# Driver code
a = input("Enter first word")
b = input("Enter second word")
c = input("Enter third word")
d = input("Enter fourth word")
e = input("Enter fifth word")
keys = ['first', 'second', 'third', 'fourth', 'fifth']
parameters = {}
for key, value in zip(keys, [a, b, c, d, e]):
if value != 'Hello':
parameters[key] = value
myFun(**parameters)
if __name__ == '__main__':
main()
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/529551.html
上一篇:為什么函式無法訪問呼叫它的變數?
