zoukankan      html  css  js  c++  java
  • Python 函数Ⅰ(基础)

    函数Ⅰ(基础)

    三目运算

    • 基本结构

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

  • 相关阅读:
    REVERSE!REVERSE!REVERSE!
    java和数据结构的面试考点
    39. recover rotated sorted array恢复旋转排序数组
    33. Search in Rotated Sorted Array旋转数组二分法查询
    搜索旋转排序数组 II
    Eclipse 查找
    在Java中返回多个值
    Java的标识符
    fwprintf (File input/output) – C 中文开发手册
    CSS盒子模型介绍 | CSS Box Model: Introduction to the CSS box model (Miscellaneous Level 1) – CSS 中文开发手册
  • 原文地址:https://www.cnblogs.com/bigox/p/10679845.html
Copyright © 2011-2022 走看看