python基础-学习记录day09

80 阅读3分钟

函数入门

"""自定义了一个函数"""
# def print_info():
#     # 函数体
#     """
#     用来打印个人信息的
#     :return:  返回到函数的调用处
#     """
#     info = '逆商很重要'
#     print(info,'111111')
#     return info  # 不是说一定要有
#
# """怎么去使用这个函数  函数的调用   函数名()"""
#
# info = print_info()
# print(info)
# print(print_info())  # None 我并没有返回东西
"""
内置函数
print()
input()
len()
max()等等
"""

# print(len('1234567809'))  # '1234567809' 函数的参数
"""用函数实现两个数进行相加"""

# num1 = int(input('请输入你的第一个数:'))
# num2 = int(input('请输入你的第二个数:'))
# def add_num(num1, num2):  # 形式参数
#     print(num1)
#     print(num2)
#     print(num1+num2)
#
#
# add_num(num1, num2)  # 实际参数
"""自定义一个len函数"""
# print(len('123123'))


string_ = input('请输入一个序列:')


def my_len(strings):
    count = 0
    for i in strings:  # 遍历
        count += 1
    # print(count)
    return count


print(len(string_))
print(my_len(string_))

2、函数的参数

# def func(a, b, c):
#     print(a)
#     print(b)
#     print(c)
#
#
# func(11, c=99, b=33)  # 位置参数必须放在关键字参数的前面
# def add(a, b):
#     c = a + b
#     print(c)
#
#
# add(11, 22)
# def func(a, b, c=99):
#     print(a)
#     print(b)
#     print(c)
#
#
# func(11, 22, 66)
# print(1, end='asdfas')
# print(2)
# print('-----------')
# func(55, 66)
# def func(a, b, c, *diy):  # *args 约定俗成的变量名 此处自定义了变量名  是以元组的形式返回
#     print(a)
#     print(b)
#     print(c)
#     print(diy)  # 接收多传入的位置参数,以元祖的形式保存
#
#
# func(33, 44, 55, 66, 77)
#
# func(*(33, 44, 55, 66, 77))
def func(**kwargs):
    print(kwargs)  # 字典类型


func(e=33, h=44, f=55, d=66, c=77)  # 关键字参数
func(**{'e': 33, 'h': 44, 'f': 55, 'd': 66, 'c': 77})

3、函数的返回值

# def Sum(a, b):  # 命名时不要用已经存在的函数名
#     sum = a + b
#     return sum
#
#
# print(Sum(1, 3))
# 定义一个函数 用于输出现在的温度  摄氏度
def sheshidu():
    temp = int(input('请输入现在的温度:'))
    # print(temp)
    return temp


temp1 = sheshidu()
print(temp1)


# 定义一个函数 用于将现在的摄氏度转成华氏度    摄氏度转华氏度 c = (a - 32) / 1.8
def huashidu(temp1):
    result = (temp1 - 32) / 1.8
    print(result)


huashidu(temp1)

4、函数的多个返回值

# 函数的多个返回值
def my_test2():
    a, b, c = (1, 2, 3)
    # print(a,b,c)
    # return a  # 当函数中有多个return时,不会报错,但是只会执行第一个
    # return b  # 后面的代码为什么不会被执行  return返回到函数调用处了
    # return c
    return a, b, c  # 写在一起 但返回的类型为元组


values = my_test2()
print(values)  # (1, 2, 3)
a, b, c = values
print(a, b, c)  # 1 2 3
print(type(values))  # <class 'tuple'>

5、练习:定义一个函数, 传入任意一个列表参数, 请在函数内容输出去重后的列表值

# 写法1
li = list(input("请输入一个列表:"))


def distinct_list(old_list):
    temp_list = set(old_list)
    new_list = list(temp_list)
    return new_list


print(f"去重后的列表值为{distinct_list(li)}")
# 写法二
def distinct_list1(*old_li):
    print(list(set(old_li)))


distinct_list1(1, 1, 2, 2, 3, 3, 3)  # [1, 2, 3]
# 写法三
def distinct_list1(old_li):
    new_li = list(set(old_li))
    new_li.sort()
    print(new_li)


li = [f'{j}' for i in range(0, 2) for j in range(0, 10)]
print(li)  # ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
distinct_list1(li)  # ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']