python学习-综合练习四(最大公约数、最小公倍数、生成日历、递归调用、字符串)


说明:本篇博文的知识点大部分来自 Python3 实例

最大公约数

求最大公约数的逻辑比较简单,这里直接上代码:


def maxCommDiv(val1, val2):
    if val1 > val2:
        smaller = val2
    else:
        smaller = val1

    commDiv = 0
    for item in range(1, smaller + 1):
        if (val1 % item == 0) and (val2 % item == 0):
            commDiv = item

    return commDiv


num1 = int(input("请输入第一个数字: "))
num2 = int(input("请输入第二个数字: "))

print(num1, ",", num2, "的最大公约数是:", maxCommDiv(num1, num2))

运行结果:
在这里插入图片描述

最小公倍数


def minCommMult(val1, val2):
    if val1 > val2:
        greater = val2
    else:
        greater = val1

    while True:
        if (greater % val1 == 0) and (greater % val2 == 0):
            commMult = greater
            break
        greater += 1

    return commMult


num1 = int(input("请输入第一个数字: "))
num2 = int(input("请输入第二个数字: "))

print(num1, ",", num2, "的最小公倍数是:", minCommMult(num1, num2))

运行结果:
在这里插入图片描述

生成日历

关键在于引入日历模块


import calendar

# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))

# 显示日历
print(calendar.month(yy, mm))

运行结果:
在这里插入图片描述

进入calendar.py文件,能够看到文件的所有函数。可以自己选择不同的函数进行调用,每个函数都有对应的说明。

在这里插入图片描述

比如我调用calendar函数:

print(calendar.calendar(2020))

会把2020年的所有月份,以及日期都打印出来。
在这里插入图片描述

递归调用

这里使用一个简单的递归作为示例。并且对逻辑进行讲解。
先看代码:


def printNum(val1):
    if val1 <= 0:
        return
    print(val1)
    val1 -= 1
    printNum(val1)


try:
    num = int(input("请输入一个正整数:"))
    if num <= 0:
        print("请输入一个正整数")
    printNum(num)
except ValueError:
    print("请输入一个正整数")

我这里定义了一个函数printNum,把输入的正整数从大到小的方式打印出来。
使用递归是为了更好的理解递归。
使用递归:首先需要设置退出条件,否则会行成死循环
我这里设置了输入参数小于等于0,则return
打印val1,让val1减一,然后再次调用自身,把减一后的val1传入,这就行成了递归。当多次调用,val1减一,逐步到了0,触发退出条件,然后函数执行完成。
运行结果:
在这里插入图片描述

字符串

以下就是一些函数的使用,我把用到的一些函数截图列出来了,感兴趣的小伙伴自己看看噢。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值