Python基础知识+题目练习,我不信你能做出这道题

函数式编程

高阶函数

Python学习交流Q群:906715085####
   map(func, *iterable)

      def fn(x, y, z):

          pass

      map(fn, range(10), range(10), range(10))
Python学习交流Q群:906715085###
filter(func, iterable)

sorted(iterable, key=None, reverse=False)

sorted('AGFBDC')

sorted('ACDacbdE')  # ['A', 'C', 'D', 'E', 'a', 'b', 'c', 'd']

# 按字符顺序排序,不区分大小写

def f(ch):

    code = ord(ch)  # 得到编码

    if (97+26) >code >= 97:

        code -= 32

    return code

sorted('ACDacbdE', key=f)  # ['A', 'a', 'b', 'C', 'c', 'D', 'd', 'E']

在这里插入图片描述

递归调用

闭包 closure

  def fa(a, b):

      c = a + b

      def fx(x):

          return a*x

      return fx

  f1 = fa(1, 2)

在这里插入图片描述

装饰器 decorators(专业提高篇)

问题:

  def say(x):

      print("您好:", x)
  say('老魏')  # 您好: 老魏

  say('小张')

  # 希望打印:

    开始问候:

    您好:老魏

    结束问候

函数装饰器

函数装饰器是指装饰的是一个函数,传入的是一个函数,返回的也是一个函数的函数

函数装饰器的语法:

    def 装饰器函数名(参数):

        语句块

        return 函数对象
被装饰函数的语法

    @装饰器函数名

    def 函数名(形参列表):

        语句块

示例见:

code/01_deco1.py

带有参数的装饰器及应用案例

: 03_mydeco3.py

函数的文档字符串

函数内部,第一个没有赋值给任何变量的字符串为文档字符串

 语法:

    def 函数名(形参列表):

        '''函数的文档字符串'''

        函数语句块

  示例:

    def cba():

        '这是一块文档字符串...'

        pass

    >>> help(cba)

函数的 __doc__属性

__doc__属性用于绑定该函数的文档字符串

示例:

def fx(a, b):

'''这是函数的文档字符串

这是第二行...

'''

print(fx.doc)

函数的__name__属性:

   __name__属性用于绑定函数名的字符串

  示例:

      def fx():

          pass

      f1 = fx

      print(f1.__name__)

函数定义语句(def语句的语法)

[@装饰器名1]

[@装饰器名2]

def 函数名([位置形参],[*[元组形参名]], [命名关键字形参], [**字典形参]):

  '''文档字符串'''

  语句块

注: []里的内容代表可省略

面试题:

Python学习交流Q群:906715085####
  L = [1, 2, 3]

  def f(n, lst=[]):

      lst.append(n)

      print(lst)

  f(4, L)  # 请问结果是[1, 2, 3, 4]

  f(5, L)  # 请问结果是[1, 2, 3, 4, 5]

  f(100)   # 请问打印结果是[100]

  f(200)   # 请问打印结果是[100, 200]

说明:

  默认参数(缺省参数)绑定在函数对象内部,具随函数的生命一直存在

解决办法:

  L = [1, 2, 3]

  def f(n, lst=None):

      if lst is None:

          lst = []

      lst.append(n)

      print(lst)

  f(4, L)  # 请问结果是[1, 2, 3, 4]

  f(5, L)  # 请问结果是[1, 2, 3, 4, 5]

  f(100)   # 请问打印结果是[100]

  f(200)   # 请问打印结果是[200]

问题:

 多人写一个程序时该怎么做?

模块 Module

  什么是模块:

    模块是一个包含有一系列数据,函数,类等组成的程序组

    模块是一个文件,模块文件名通常以.py结尾

作用:

让一些相关的数据,函数,类等有逻辑的组织在一起,使逻辑结构更加清晰

模块中的数据,函数和类等可提供给其它模块或程序使用

在这里插入图片描述

模块的分类:

1. 内置模块(builtins),在解析器的内部可以直接使用

2. 标准库模块,安装python时已安装且可直接使用

3. 第三方模块(通常为开源),需要自己安装

4. 用户自己完的模块(可以作为其它人的第三方模块)

模块的导入语句

import 语句

语法:

   import 模块名1[as 模块新名1][,模块名2 [as 模块新名2]], ...

示例:

Python学习交流Q群:906715085###
   # 导入数学模块

    import math

    # 导入系统模块sys和 os模块

    import sys, os

  作用:

    将某模块整体导入到当前模块

  用法:

    模块.属性名
dir(obj)  函数返回模块所有属性的字符串列表

help(obj)  可以查看模块相关的文档字符串

练习 :

  1. 输入一个正方形的周长,输出正方形的面积

  2. 输入一个圆的半径,打印出这个圆的面积

  3. 输入一个正方型的面积,打印这个正方型的周长

  ( 要求: 用math模块内的函数和数据)

from import 语句

语法:

   from 模块名 import 模块属性名1 [as 属性新名1][,模块属性名2[as 属性新名2], ...]

作用:

将某模块内的一个或多个属性导入到当前模块的作用域

示例:

from math import pi

from math import pow, sqrt

from math import factorial as fac

...

在这里插入图片描述

from import *语句

语法:

from 模块名 import *

作用:

将某模块的所有属性都导入到当前模块

示例:

from math import *

dir 函数:

  dir([对象])  返回一个字符串列表

作用:

  一、如果没有参数调用,则返回当前作用域内的所有变量的列表

    二、如果给定一个对象作为参数,则返回这个对象的所有变量的列表

      1. 对于一个模块,返回这个模块的全部属性

      2. 对于一个类对象,返回类对象的所有变量,亲递归基类对象的所有变量

      3. 对于其它对象,返回所有的变量,类变量,基类变量

数学模块 math

模块名math

相关文档见:

   python_base_docs_html/数学模块math.html

时间模块 time

  此模块提供了时间相关的函数,且一直可用

相关文档见:

   python_base_docs_html/时间模块time.html

练习:

  写一个程序,输入你的出生日期

    1) 算出你已经出生了多少天?

    2) 算出你出生那天是星期几?

练习:

  1. 写一个程序,以电子时钟格式打印时间:

      时间格式为:

          HH:MM:SS

      时间每隔一秒刷新一次

  

  2. 编写一个闹钟程序,启动时设置定时时间,到时候后打印出一句语,然后程序退出




  3. 请编写函数fun,其功能是计算下列多项式的和

 sn = 1 + 1/1! + 2/2! + 3/3! + ... n/n!

 计算n为100时的值

看一下求出来的和是什么?

(建议用math.factorial)

最后

今天的分享到这里就没有了,下一章见啦!!!!!!

在这里插入图片描述

  # 以下练习明天完成

  ?. 把学生管理系统划分为模块(把相关操作放在一个模块内):

     建议:

       main.py 放主事件循环

       menu.py 放show_menu函数

       student_info.py 放学生信息相关的操作

猜你喜欢

转载自blog.csdn.net/xff123456_/article/details/124406333