函数Ⅰ(基础)

三目运算

  • 基本结构

    v =  前面  if 条件 else 后面    #条件为真v=前面,条件为假v=后面.

    #等同于
    if 条件:
    v = '前面'
    else:
       v = '后面'
       
    #示例:
    # 让用户输入值,如果值是整数,则转换成整数,否则赋值为None

    data = input('>>>')
    value =  int(data) if data.isdecimal() else None

函数基础

  • 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。

1.基本结构:

def 函数名():
   # 函数内容
   pass #pass占位符,没有任何操作

# 函数的执行
函数名()
  • 函数如果不被调用,内部代码将不被执行.

  • 运行示例

    def get_list_first_data():
       v = [11,22,33,44]
       print(v[0])
    get_list_first_data()

2.参数

  • 参数分为动态参数和静态参数,又叫动参和形参.

    def get_list_first_data(aaa): # aaa叫形式参数(形参)
       v = [11,22,33,44]
       print(v[aaa])
    get_list_first_data(1) # 2/2/1调用函数时传递叫:实际参数(实参)
    • 小练习

      # 1. 请写一个函数,函数计算列表 info = [11,22,33,44,55] 中所有元素的和。

      def get_sum():
         info = [11,22,33,44,55]
         data = 0
         for item in info:
             data += item
         print(data)

      get_sum()

      # 2. 请写一个函数,函数计算列表中所有元素的和。

      def get_list_sum(a1):
        data = 0
         for item in a1:
             data += item
        print(data)
         
      get_list_sum([11,22,33])
      get_list_sum([99,77,66])
      v1 = [8712,123,123]
      get_list_sum(v1)

      # 3. 请写一个函数,函数将两个列表拼接起来。
      def join_list(a1,a2):
         result = []
         result.extend(a1)
         result.extend(a2)
         print(result)
         
      join_list([11,22,33],[55,66,77]

      # 4. 计算一个列表的长度
      def my_len(arg):
      count = 0
      for item in arg:
               count += 1
      print(count)

      v = [11,22,33]
      my_len(v)
      len(v)

2.3 返回值return

  • return后续代码不会被执行

  • 只能返回一次

  • 如果要返回多个数据,可先把多个数据包装成一个整体。整体返回(列表、元组、字典.......)

    def caculate(a, b):
       he = a + b
       cha = a - b
       return (he, cha)
  • 小练习

    # 1. 让用户输入一段字符串,计算字符串中有多少A字符的个数。有多少个就在文件a.txt中写多少个“李邵奇”。

    def get_char_count(data):
       sum_counter = 0
       for i in data:
           if i == 'A':
               sum_counter += 1
               
    return sum_counter

    def write_file(line):
       if len(line) == 0:
           return False  # 函数执行过程中,一旦遇到return,则停止函数的执行。
       with open('a.txt',mode='w',encoding='utf-8') as f:
           f.write(line)
    return True


    content = input('请输入:')
    counter = get_char_count(content)
    write_data = "李邵奇" * counter
    status = write_file(write_data)
    if status:
       print('写入成功')
    else:
       print('写入失败')
       
       
       
       
       
    # 2. 写函数,计算一个列表中有多少个数字,打印: 列表中有%s个数字。
    #   提示:type('x') == int 判断是否是数字。
    """
    # 方式一:
    def get_list_counter1(data_list):
      count = 0
      for item in data_list:
          if type(item) == int:
              count += 1
    msg = "列表中有%s个数字" %(count,)
      print(msg)
       
    get_list_counter1([1,22,3,'alex',8])

    # 方式二:
    def get_list_counter2(data_list):
      count = 0
      for item in data_list:
          if type(item) == int:
              count += 1
    return count
       
    v = get_list_counter1([1,22,3,'alex',8])
    msg = "列表中有%s个数字" %(v,)
    print(msg)
    """

    # 2. 写函数,计算一个列表中偶数索引位置的数据构造成另外一个列表,并返回。
    """
    # 方式一:
    def get_data_list1(arg):
      v = arg[::2]
      return v

    data = get_data_list1([11,22,33,44,55,66])

    # 方式二:
    def get_data_list2(arg):
      v = []
      for i in range(0,len(arg)):
      if i % 2 == 0:
      v.append(arg[i])
      return v

    data = get_data_list2([11,22,33,44,55,66])

    """

    # 3. 读取文件,将文件的内容构造成指定格式的数据,并返回。
    """
    a.log文件
      alex|123|18
      eric|uiuf|19
      ...
    目标结构:
    a. ["alex|123|18","eric|uiuf|19"] 并返回。
    b. [['alex','123','18'],['eric','uiuf','19']]
    c. [
    {'name':'alex','pwd':'123','age':'18'},
    {'name':'eric','pwd':'uiuf','age':'19'},
    ]
    """
    #c问答案:
    def read_log(txt):#定义函数
       l=['name','age','job']
       l1 = []
       with open(txt, mode='r', encoding='utf-8') as f:
           for mes in f:#取f行,'alex|123|18','eric|uiuf|19'
               count=0
               dic={}
               for v in mes.strip().split('|'):#mes.split()切割字符串['alex','123','18']
                   dic[l[count]]=v  #取键赋值
                   count +=1
               l1.append(dic)
       print(l1)
    read_log('a.log')

Python学习day9 函数Ⅰ(基础)的更多相关文章

  1. Python学习笔记-函数基础

    函数基础 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 为什么使用函数:减少重复代码.使程序变的可扩展使程序变得易维护 1.定义一个函数 #定 ...

  2. python学习总结 --函数基础

    函数基础 ### 函数简介 - 定义:具有特定功能的一段代码 - 优点: - 可以减少代码的重复书写 - 可以将功能的实现着和使用者分开,可以提高开发效率 - 分类: - 库函数:print.inpu ...

  3. python学习日记(函数基础)

    修改文件(原理)--回顾 #修改文件(原理) with open('name','r',encoding='utf-8') as f,\ open('password','w+',encoding=' ...

  4. python学习之函数基础

    第一个python函数: >>> def func_1(): ... print 'hello python' ... >>> func_1() hello pyt ...

  5. Python学习day16-模块基础

    <!doctype html>day16 - 博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { ...

  6. Python学习day12-函数基础(2)

    <!doctype html>day12博客 figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { pos ...

  7. Python学习day11-函数基础(1)

    figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...

  8. Python学习课程零基础学Python

    python学习课程,零基础Python初学者应该怎么去学习Python语言编程?python学习路线这里了解一下吧.想python学习课程?学习路线网免费下载海量python教程,上班族也能在家自学 ...

  9. Python学习笔记之基础篇(-)python介绍与安装

    Python学习笔记之基础篇(-)初识python Python的理念:崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. python的历史: 1989年,为了打发圣诞节假期,作者Guido开始写P ...

随机推荐

  1. php+ajax实现登录按钮加载loading效果

    php+ajax实现登录按钮加载loading效果,一个提高用户体验,二个避免重复提交表单,ajax判断加载是否完成. 登录表单 <form onsubmit="return chec ...

  2. 【Linux】【Java】CentOS7安装最新版Java1.8.191运行开发环境

    1.前言 本来在写[Linux][Apatch Tomcat]安装与运行.都快写完了. 结果...我忘记安装 Java 环境 然后...新开了博客编辑页面. 最后...我的那个没了...没了...真的 ...

  3. android Q build 变化

    一 概述 android Q build变化整体上越来越严格,语法上之前能够使用的Q上将不能使用. 二 主要变化 2.1  'USER' 弃用 ‘USER’后面的值会被设置成‘nobody',andr ...

  4. c/c++ 多线程 利用条件变量实现线程安全的队列

    多线程 利用条件变量实现线程安全的队列 背景:标准STL库的队列queue是线程不安全的. 利用条件变量(Condition variable)简单实现一个线程安全的队列. 代码: #include ...

  5. MR单元测试以及DeBug调试

    Hadoop的MapReduce程序提交到集群环境中运行,出问题时定位非常麻烦,有时需要一遍遍修改代码和打印日志来排查问题,哪怕是比较小的问题.如果数据量很大的话调试起来就相当耗费时间. 而且,Map ...

  6. 微信小程序自动化测试--接口测试

    偷得一篇文章: postman测试微信小程序接口---postman https://www.sunzhongwei.com/using-the-postman-test-wechat-mini-ap ...

  7. 持续代码质量管理-SonarQube-7.3简单使用

    安装了SonarQube以及Sonar Scanner之后,就需要那代码检测了.当然为了方便我们使用已有现成的demo,知道到对应的git地址下载即可. 1. sonar-examples下载 htt ...

  8. 转 Angular2优质学习资源收集

    文档博客书籍类 官方网站: https://angular.io 中文站点: https://angular.cn Victor的blog(Victor是Angular路由模块的作者): https: ...

  9. DB2批量插入性能对比

    import ibm_db import random import time first_names = '赵钱孙李周吴郑王冯陈褚卫蒋沈韩杨朱秦尤许何吕施张孔曹严华金魏' \ '陶姜戚谢邹喻柏水窦章 ...

  10. Linux内核入门到放弃-无持久存储的文件系统-《深入Linux内核架构》笔记

    proc文件系统 proc文件系统是一种虚拟的文件系统,其信息不能从块设备读取.只有在读取文件内容时,才动态生成相应的信息. /proc的内容 内存管理 系统进程的特征数据 文件系统 设备驱动程序 系 ...