gpt4 book ai didi

python - optional 参数 Python

转载 作者:行者123 更新时间:2023-12-04 00:17:33 24 4
gpt4 key购买 nike

必须编写一些代码来定义一个可以使用两个或三个参数的函数。
该函数应采用三个参数:

  • 温度, float
  • 天气,一个字符串
  • is_celsius, bool 值

  • 如果温度低于该函数应返回 True
    卡住(如果 is_celsius 为 False,则为 32,如果 is_celsius 为 False,则为 0
    正确)或者天气是否“下雪”。否则,应该
    返回假。
    但是请注意,is_celsius 应该是一个 optional
    争论。如果函数调用没有提供值
    is_celsius,假设它是 True。
    我写了这个
    def snowed_in(temperature, weather, **cels):
    if weather =="snowy":
    return True
    elif weather=="sunny":
    if 'is_celsius = False' in cels:
    if temperature<32:
    return True
    elif 'is_celsius = True' in cels:
    if temperature<0:
    print ('ad')
    return True
    elif 'is_celsius = True' not in cels:
    if temperature<0:
    return True
    else:
    return False
    以及以下电话
    print(snowed_in(15, "sunny")) #Should print False
    print(snowed_in(15, "sunny",is_celsius = False)) #Should print True
    print(snowed_in(15, "snowy",is_celsius = True)) #Should print True
    我越来越
    None
    None
    True
    有人可以帮我找出我的代码有什么问题吗?

    最佳答案

    这不是使用 **kwargs 有意义的情况。 - 通常用于包装函数。
    你应该简单地做这样的事情来声明 is_celsius明确作为 optional 参数:

    def snowed_in(temperature, weather, is_celsius=True):
    if weather == "snowy":
    return True
    elif is_celsius:
    return temperature < 0
    else:
    return temperature < 32
    但是,如果有充分的理由在字典中捕获 optional 参数(也许您还需要将其传递给要包装的函数),那么您可以使用 get 提取相关参数。使用任何默认值(否则将默认为 None ):
    def snowed_in(temperature, weather, **kwargs):
    if weather == "snowy":
    return True
    elif kwargs.get('is_celsius', True):
    return temperature < 0
    else:
    return temperature < 32

    关于python - optional 参数 Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62826483/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com