首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从嵌套If语句返回变量的Python

从嵌套If语句返回变量的Python
EN

Stack Overflow用户
提问于 2020-06-22 21:38:21
回答 3查看 991关注 0票数 0

我是一个初学者,我想知道我如何管理程序去一个函数取决于一年是否是闰年。这是我的密码。也许我可以指示这个函数返回一个变量,该变量表示年份要么是常规年份,要么是闰年,根据结果变量,我可以选择下一个函数吗?我不知道该怎么做,或者有没有更好的方法。

代码语言:javascript
运行
复制
def get_year():
    print("Enter a year:")
    year = int(input())
    return year


def leap_year(year):
    if (year % 4) == 0:
        if (year % 100) == 0:
            if (year % 400) == 0:
                print("This is a leap year")
            else:
                print("This is not a leap year")
        else:
            print("This is a leap year")
    else:
        print("This is not a leap year")


def main():
    months = ["January", "February", "March", "April", "May",
              "June", "July", "August", "September", "October",
              "November", "December"]
    days_leap = [31, 29, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30]
    days = [31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30]
    year = get_year()
    leap_year(year)


main()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-06-22 21:42:29

你可以这样做:

代码语言:javascript
运行
复制
def leap_year(year):
    if (year % 4) == 0:
        if (year % 100) == 0:
            if (year % 400) == 0:
                print("This is a leap year")
                return True
            else:
                print("This is not a leap year")
                return False
        else:
            print("This is a leap year")
            return True
    else:
        print("This is not a leap year")
        return False

这样,你以后可以说:

代码语言:javascript
运行
复制
if leap_year(year):
    doAThing()
else:
    doADifferentThing()
票数 2
EN

Stack Overflow用户

发布于 2020-06-22 21:46:29

不要使用print(),而是使用return Truereturn Falseresult = leap_year(year)。当您拥有result时,您可以在其他函数中打印文本或使用result

代码语言:javascript
运行
复制
def get_year():
    print("Enter a year:")
    year = int(input())
    return year

def leap_year(year):
    if (year % 4) == 0:
        if (year % 100) == 0:
            if (year % 400) == 0:
                return True
            else:
                return False
        else:
            return True
    else:
        return False

def main():
    months = ["January", "February", "March", "April", "May",
              "June", "July", "August", "September", "October",
              "November", "December"]
    days_leap = [31, 29, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30]
    days = [31, 28, 31, 30, 31, 30, 31, 30, 31, 30, 31, 30]
    year = get_year()
    
    result = leap_year(year)
    
    if result:
        print("This is a leap year")
    else:
        print("This is not a leap year")

main()
票数 1
EN

Stack Overflow用户

发布于 2020-06-22 21:48:32

另一种可能性是:

代码语言:javascript
运行
复制
year=int(input("Enter a year:"))

if(year%4==0 and year%100==0 and year%400==0):
    print("This is a leap year")
else:
    print("This is not a leap year")

条件的组合直接提供了一个布尔值,您可以检查!简单的"if条件: do“与"if condition==True: do”相同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62523900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档