首页 > 编程语言 > 详细

Python之第九天的努力--函数(1)

时间:2020-06-09 20:45:17      阅读:49      评论:0      收藏:0      [点我收藏+]

01 练习

# 19.用户输入一个数字,判断一个数是否是水仙花数。
#
# 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数,
#
# 例如: 153 =1**3 + 5**3 + 3**3
# num = input(‘请输入一个数字:‘)
# result = 0
# if num.isdecimal():
#     for i in num:
#         i = int(i)
#         result += i**3
#     if result == int(num):
#         print(‘您输入的是水仙花数‘)
#     else:
#         print(‘您输入的不是水仙花数‘)
# else:
#     print(‘您输入的不是数字‘)
# 20.把列表中所有姓周的?的信息删掉(此题有坑, 请慎重):
#
lst = [‘周??‘, ‘周星星‘, ‘麻花藤‘, ‘周扒?‘]
#
# 结果: lst = [‘麻花藤‘]
# new_list = []
# for i in lst:
#     if i[0] == ‘周‘:
#         continue
#     new_list.append(i)
# lst = new_list
# print(lst)

# for i in range(len(lst)-1,-1,-1):
#     if lst[i].strip()[0] == ‘周‘:
#         lst.pop(i)
# print(lst)
# 21.车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量. (选做题)
#
cars = [‘鲁A32444‘,‘鲁B12333‘,‘京B8989M‘,‘?C49678‘,‘?C46555‘,‘沪 B25041‘]
# #
locals = {‘沪‘:‘上海‘, ‘?‘:‘??江‘, ‘鲁‘:‘?东‘, ‘鄂‘:‘湖北‘, ‘湘‘:‘湖南‘,‘京‘:‘北京‘}
# #
# # 结果: {‘??江‘:2, ‘?东‘: 1, ‘北京‘: 1}
# 在循环中给字典添加键值对
# 没有键,就创建一个键
dic = {}
for i in cars:
    if locals[i[0]] in dic:
        dic[locals[i[0]]] += 1
    else:
        dic[locals[i[0]]] = 1
print(dic)
# 文件a.txt内容:每一行内容分别为商品名字,价钱,个数。
# apple 10 3
# tesla 100000 1
# mac 3000 2
# lenovo 30000 3
# chicken 10 3
#  通过代码,将其构建成这种数据类型:
# [{‘name‘:‘apple‘,‘price‘:10,‘amount‘:3},{‘name‘:‘tesla‘,‘price‘:1000000,‘amount‘:1}......]
# 并计算出总价钱。
# l1 = []
# with open(‘a‘,encoding=‘utf-8‘) as f1:
#     for line in f1:
#         dic = {}
#         line = line.strip()
#         # print(line)
#         line_list = line.split()
#         # print(line_list)
#
#         # dic[‘name‘] = line_list[0]
#         # dic[‘price‘] = int(line_list[1])
#         # dic[‘amount‘] = int(line_list[2])
#         dic = {‘name‘:line_list[0],‘price‘:int(line_list[1]),‘amount‘:int(line_list[2])}
#
#         # print(dic)
#         l1.append(dic)
# print(l1)

# 如果数据列数增加了
l1 = []
name_list = [‘name‘,‘prise‘,‘amount‘]    # 增加列在这里加就可以了
with open(‘a‘,encoding=‘utf-8‘) as f1:
    for line in f1:
        line_list = line.strip().split()
        # print(line_list)
        dic = {}
        for index in range(len(name_list)):
            dic[name_list[index]] = line_list[index]
        l1.append(dic)
print(l1)

02 内容回顾

  1. 文件操作

    三部曲:

    • 打开文件open()
    • 操作文件(对文件句柄进行操作)
    • 关闭文件
    • 文件路径path,编码方式:encoding,mode
  2. 读,写,追加

    • 读 r,rb,r+,r+b
      • read()
      • read(n):
        • r:read(n) n是字符
        • rb:read(n) n是字节
      • readline() str
      • readlines() list [‘每一行\n‘,‘第二行\n‘,]
      • for 循环 对文件句柄。
    • 写 w,wb,w+,w+b
      • w:没有文件创建新文件,写入内容
      • w:有文件,先清空,在写入新内容。
    • 追加 a,ab,a+,a+b
      • a:没有文件创建新文件,写入内容
      • a:有文件,追加新内容。
  3. r+:先读后写

  4. 其他功能:tell() seek() flush()

  5. with open() as f1:

  6. 文件的改的操作

03 函数

  1. 函数的初识:

    # 函数性编程
    
    # s1 = ‘fjfksjdkjksfdsjk‘
    # l1 = [1,2,3,4,5,6]
    # def my_len(s):
    #     count = 0
    #     for i in s:
    #         count += 1
    #     print(count)
    # my_len(s1)
    # my_len(l1)
    
    
    
    # 函数:以功能(完成一件事)为导向     一个函数一个功能
    # 随调随用
    # 减少代码的重复性
    # 增强代码的可读性
    
  2. 函数的结构与调用

    def douyin():
        print(‘打开抖音‘)
        print(‘下滑‘)
        print(‘看视频‘)
        print(‘点赞‘)
        print(‘娱乐‘)
    
    ‘‘‘
    结构:def 关键字,定义函数。
         douyin 函数名:与变量设置相同,具有可描述性。
         函数体:缩进。函数中尽量不要出现print
    ‘‘‘
    
    # 函数什么时候执行
    # 当函数遇到    函数名()  函数才会执行
    douyin()
    
  3. 函数的返回值

    # 函数的返回值
    # s1 = ‘sjfhwhfeufjsb‘
    # print(len(s1))
    
    
    # def douyin():
    #     print(‘打开抖音‘)
    #     print(‘下滑‘)
    #     return
    #     print(‘看视频‘)
    #     print(‘点赞‘)
    #     print(‘娱乐‘)
    # douyin()
    
    # return:在函数中遇到return直接结束函数。
    
    
    # def douyin():
    #     print(‘打开抖音‘)
    #     print(‘下滑‘)
    #     print(‘看视频‘)
    #     print(‘点赞‘)
    #     print(‘娱乐‘)
    #     return ‘哈哈哈哈哈‘
    #
    # ret = douyin()
    # print(ret)
    # # return 将数据返回给函数的执行者,调用者
    
    
    def douyin():
        print(‘打开抖音‘)
        print(‘下滑‘)
        print(‘看视频‘)
        print(‘点赞‘)
        print(‘娱乐‘)
        return ‘哈哈哈哈哈‘,6666,[857,857]
    
    ret1,ret2,ret3 = douyin()
    print(ret1,ret2,ret3)
    # return 返回多个元素 是以元组的形式返回给函数的执行者
    
    ‘‘‘
    return总结:
        1.在函数中,终止函数
        2.return 可以给函数的执行者返回值:
            1.return单个值        单个值
            1.return多个值        (多个值,)
    ‘‘‘
    
  4. 函数的参数

    # 实参角度:
    # 1.位置参数:从左至右,一一对应。
    # def douyin(form,place):    # 函数的定义:接收的参数  形式参数
    #     print(‘打开抖音‘)
    #     print(‘进行筛选:类别:%s,地区:%s‘%(form,place))
    #     print(‘下滑‘)
    #     print(‘看视频‘)
    #     print(‘点赞‘)
    #     print(‘娱乐‘)
    # douyin(‘吃‘,‘山东‘)    # 函数的执行传的参数:实际参数
    
    # 写一个函数,只接受两个int的参数,函数的功能是将较大的数返回
    # def compare(num1,num2):
    #     if num1 > num2:
    #         return num1
    #     else:
    #         return num2
    # print(compare(1000,20))
    
    # 三元运算符: 简单的if else
    # a = 10
    # b = 20
    # c = a if a > b else b
    # print(c)
    
    # def compare(num1,num2):
    #     # max_num = 0
    #     # max_num = num1 if num1 > num2 else num2
    #     # return max_num
    #
    #     return num1 if num1 > num2 else num2
    #
    # print(compare(1000,20))
    
    
    # 2.关键字参数
    # 一一对应,不要求顺序
    # def douyin(form,place):
    #     print(‘打开抖音‘)
    #     print(‘进行筛选:类别:%s,地区:%s‘%(form,place))
    #     print(‘下滑‘)
    #     print(‘看视频‘)
    #     print(‘点赞‘)
    #     print(‘娱乐‘)
    # douyin(form=‘吃‘,place=‘山东‘)
    
    # 函数:传入两个字符串参数,将两个参数拼接完成后形成的结果返回
    # def func(a,b):
    #     return a + b
    # print(func(b=‘你‘,a=‘牛批‘))
    
    
    # 混合参数
    # def douyin(form,place,time):
    #     print(‘打开抖音‘)
    #     print(‘进行筛选:类别:%s,地区:%s,时间:%s‘%(form,place,time))
    #     print(‘下滑‘)
    #     print(‘看视频‘)
    #     print(‘点赞‘)
    #     print(‘娱乐‘)
    #     return ‘地区:%s 时间:%s‘%(place,time)
    # print(douyin(‘吃‘,‘山东‘,time=‘15s‘))
    
    
    ‘‘‘
    实参角度:
        1.位置参数 按照顺序,一一对应
        2.关键字参数,一一对应
        3.混合参数:位置参数一定要在关键字参数的前面。
    ‘‘‘
    
    # 形参角度
    # 1.位置参数 与实参角度的位置参数是一种
    
    # 写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
    # def func(l):
    #     # if len(l) > 2:
    #     #     return l[:2]
    #     # else:
    #     #     return l
    #
    #     return l[:2] if len(l) > 2 else l
    #
    # print(func([1,2,3,4]))   # [1, 2]
    # print(func([1]))         # [1]
    
    # def func(l):
    #     return l[:2]
    # print(func([1,2,3,4,]))
    # print(func([1]))
    
    
    # 2.默认参数
    # 默认参数设置的意义:普遍经常使用的。
    # def douyin(form,place=‘山东‘,time=‘15s‘):    ###
    #     print(‘打开抖音‘)
    #     print(‘进行筛选:类别:%s,地区:%s,时间:%s‘%(form,place,time))
    #     print(‘下滑‘)
    #     print(‘看视频‘)
    #     print(‘点赞‘)
    #     print(‘娱乐‘)
    #     return ‘地区:%s 时间:%s‘%(place,time)
    # print(douyin(‘吃‘))
    
    ‘‘‘
    形参角度:
        1.位置参数
        2.默认参数:经常使用的
    ‘‘‘
    

Python之第九天的努力--函数(1)

原文:https://www.cnblogs.com/szheng/p/13080488.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!