第八章 Python 函数

函数调用

  1. 函数就是一段具有特定功能的代码块   num = len(my_list)
  2. 调用函数:通过一条简单的命令执行一系列复杂的操作
  3. 函数名len:函数的标识符
  4. 函数参数my_list:在调用函数时给函数提供数据
  5. 函数的返回值num:有些函数执行完毕会得到一个结果;不是所有函数都有返回值(None)
  6. print(len.__name__) 获取函数名
  7. print 函数使用简介

#####     print 的使用   #####
print('hello','world','!')
# hello world !

print('hello','world','!',sep = '-')
# hello-world-!

print('hello',end = ' ')
print('world',end = ' ')
print('!')
# hello world !

定义函数

  1. 函数头: def 函数名(参数列表):
  2. 函数体:实现函数功能
  3. 函数必须先定义,再调用

 

#####     自定义函数   #####
def say_hi():
    print('Hello')  ## 不调用不执行

def good_morning():
    say_hi()
    print('Good morning!')

good_morning()

函数参数

#####     函数参数   #####
def line(width,char):
    print(char*width)
line(5,'-')
line(10,'*')

def line(width,char:str):
    char.split()
    print(char*width)
## 虽然定义了char为str,但是在调用的时候仍然可以传递给它别的类型(int)的参数
line(5,5)

## 函数的文档注释
def line(width,char):
    '''画一条线'''
    print(char*width)
line(5,'-')

函数返回值

  1. 使用return进行返回
  2. return可以提前结束整个函数,函数执行到return就结束了,后面的代码不再执行
  3. if 语句的缩写:<表达式1> if <条件> else <表达式2>
#####     函数返回值   #####
# 1. 利用 return 进行返回
def get_max(a,b):
    return max(a,b)
t = get_max(3,6)
print(t)
# 6

# 2. 借助return结束函数
def set_age(age):
    if type(age) != int:
        return None
    if age < 0:
        return 
    print(age)
age = set_age(10)
# 10

# 3. 返回多个值
def fun(a,b):
    return a + b,a-b
i,j = fun(12,9)
print(f'i = {i},j = {j}')
p = fun(12,9)
print(f'p = {p}')  # 元组
# i = 21,j = 3
# p = (21, 3)

# 4. if 语句的缩写
def maximun1(a,b):
    v = a
    if b > a:
        v = b
    return v
print(maximun1(2,4))
# 4

def maximun2(a,b):
    v = b if b > a else a
    # <表达式1> if <条件> else <表达式2>
    return v
print(maximun2(9,0))
# 9

练习:日历

 

 

def is_leap_year(y):
    ''' 
    判断某一年是不是闰年
    输入:year
    输出:Ture,False
    '''
    if (y % 400 == 0) or (y % 4 == 0 and y % 100 != 0):
        return True
    else:
        return False

def get_days_of_month(y,m):
    '''
    判断某一年的某一个月有几天
    输入:year,month
    输出:总天数
    '''
    if m in (1,3,5,7,8,10,12):
        return 31
    elif m in (4,6,9,11):
        return 30
    else:
        if is_leap_year(y):
            return 29
        else:
            return 28

def get_week_of_the_day(y,m,d):
    '''
    判断某年某月某天是星期几
    '''
    if m in (1,2):
        m += 12
        y -= 1
    w = (d + 2 * m + 3 * (m + 1) // 5 + y + y // 4 - y // 100 + y // 400) % 7 + 1
    return w

def get_calender():
    '''
    获取某年某月的日历
    '''
    days = get_days_of_month(year,month)
    print('一 二 三 四 五 六 七')
    print('-' * 20)
    for day in range(1,days + 1):
        w = get_week_of_the_day(year,month,day)
        if day == 1:
            print(f"{' ' * (w - 1) * 3}",end = '')
        else:
            if w == 1:
                print('')
        print(f'{day:2d}',end = ' ')
    print('') 



year = int(input('请输入年:'))
month = int(input('请输入月:'))
get_calender()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值