8.19学习内容

昨日内容回顾

1.函数的定义与调用

# 函数分为定义阶段和执行阶段,在定义阶段中函数只检测语法不执行代码

# 如果需要调用一个函数就必须要在函数名后面加括号,如果需要参数,就给相应的参数

# 函数的命名可以理解为是在定义一段代码的主要内容及作用,也要做到见名知意.方便日后的修改及调整.

2.三种函数的种类

#1.有参函数:函数后的括号内给了参数.
def info(x):
    print(123)
#2.无参函数:函数后的括号内没有参数
def info():
    print(123)

#3.空函数:子代码用pass代替,没有实际意义 多用于框架搭建
def info():
    pass

3.函数的参数

#1.位置参数
按照位置给函数括号内写的类似于变量名传值,按照对应位置一一对应,不能多也不能少

#2.关键字参数
指定变量名传值,可以打破位置顺序,但要在位置参数的后面.

#3.默认参数
#函数在定义的阶段就已经给形参赋值,在调用阶段如果不传值就默认用形参赋的值


#4.可变长参数
在形参中使用*和**
*为元组,**为字典

4.函数的返回值

#关键字是return
1.可以返回 返回值
2.函数体代码遇到return就立刻结束运行.
 函数体代码如果没有return,返回值默认是none
如果有return 后面写什么就返回什么 如果跟了多个值就以元组的形式返回

5.常见的内置函数

abs (取绝对值)
bin (十进制转换成二进制)
oct (十进制转换成八进制)
hex (十进制转换成十六进制)
max (取最大值)
min (取最小值)
sum  (求和)
chr   (返回ascii码对应值)
callable(是否可以调用)

---------------------------------------------------------------------------------------------------

今日内容回顾

 

1.函数名称空间与作用域

# 名称空间指的是存放变量名与值的绑定关系的地方
1.内置名称空间:可以理解为python内置的名称空间,就是无法操作.启动python解释器自动打开关闭会销毁

2.全局名称空间:随着python文件的开始执行会形成的一块空间,

3.局部名称空间: 伴随函数的调用产生,结束后销毁 

加载顺序:内置名称空间 > 全局名称空间 > 局部名称空间

 

 

 

name = 'jack' # 在全局名称空间
def func1():
    name = 'jason'# 在局部名称空间 但是在内部并没有执行print指令
print(name) # 因为这行指令是在函数外部,所以会取值在全局空间
name = 'jack' # 在全局名称空间
def func1():
    name = 'jason'# 由于运行顺序是从局部名称开始所以先找到函数内部的以name为变量名的'jason'
    print(name) # 由于已经在局部名称空间找到了jason所以上面的jack就不会再取值
func1() # 所以运行结果是jason

 

 

 

 

 

 

 

 

匿名函数与列表生成式等知识补充

#匿名函数:
  即没有名字的函数
语法结构
    lambda 形参:返回值

# 匿名函数一般不单独使用需要结合内置函数自定义函数等一起使用
l = [1, 2, 3, 4, 5, 6, 7]
res = map(lambda x: x + 10, l)
print(list(res)) # list是迭代器

#匿名函数主要用于一些比较简单的业务逻辑中 减少代码量

列表生成式

l1 = [11, 22, 33, 44, 55, 66, 77, 88]
new_list = []  ##生成一个新列表
for i in l1:
    new_list.append(i/2)
print(new_list)

 

 

 

l1 = [11, 22, 33, 44, 55, 66, 77, 88, 99]
new_list1 = [i for i in l1 if i*2 > 60]
print(new_list1)

 

 

 

三元表达式

# 当的子代码只有一行的情况下可以写在一行内

#当if判断仅仅是二选一的情况下 可以用三元表达式
name = input('username>>>:')
res = 'NB' if name == 'jason' else 'SB'
print(res) 
 当if后面的条件成立的情况下,使用前面的结果,当if的结果不成立的情况下 使用后面的结果,由中间if 的条件做判断

 

 

 A if条件 b 如果if条件为true 则使用a 不成立则使用b

模块的使用

#具有一定的功能的代码的集合叫做模块与包      可以是py文件也可以是多个py文件(包)
导入模块的本质
  会执行模块内代码并产生一个独立的属于该模块的模块空间,可以打破文件限制,然后将代码执行过程中的名字存放该名称空间中,然后给导入模块的语句一个模块名
 语法结构
import a
  b.py
        import aaa
    aaa.py
        name = 'jason'
        def index():
            pass

 

 

 # import 模块名

可以通过模块名点出所有的名字
from 模块名 import 子名1,子名2

#如果模块名较长或者不符合你的看法 可以起别名

import 123456 as 654321 from d1.d2 import f1 as 1f

内置模块之时间模块

1.时间戳:是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
import time
print(time.time()) 

 

 

2.打印时间

import time print(time.strftime('%Y\%m\%d')) print(time.strftime('%Y\%m\%d %H:%M:%S')) # 只有月和日小写否则输出结果会不对

 

 

3.让程序等待多少秒
import time
def index():
    print('123')
    time.sleep(3)
    print('哈哈哈')
index()
4.定义操作时间 day=7 也就是可以对另一个时间对象加7天或者减少7点
import datetime
tdelta
= datetime.timedelta(days=7) tdelta1 = datetime.timedelta(days=-7) print(tday + tdelta1)

 

posted @ 2021-08-19 23:08  查无此人cxc  阅读(49)  评论(0)    收藏  举报