文章目录

  • 最大公约数
  • 最小公倍数
  • 生成日历
  • 递归调用
  • 字符串



说明:本篇博文的知识点大部分来自 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))

运行结果:

python用递归法求最大公约数 python递归函数求最大公约数_递归

最小公倍数

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))

运行结果:

python用递归法求最大公约数 python递归函数求最大公约数_递归_02

生成日历

关键在于引入日历模块

import calendar

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

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

运行结果:

python用递归法求最大公约数 python递归函数求最大公约数_日历_03

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

python用递归法求最大公约数 python递归函数求最大公约数_递归_04

比如我调用calendar函数:

print(calendar.calendar(2020))

会把2020年的所有月份,以及日期都打印出来。

python用递归法求最大公约数 python递归函数求最大公约数_python用递归法求最大公约数_05

递归调用

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

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,触发退出条件,然后函数执行完成。

运行结果:

python用递归法求最大公约数 python递归函数求最大公约数_python_06

字符串

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

python用递归法求最大公约数 python递归函数求最大公约数_python_07