python语法学习记录

第一天

print(1/1) #1.0 除法得到浮点类型
print(3//2) #1 整除得到int类型


print(0b11) #二进制 11 == 3
print(0o11) #八进制 11 == 9
print(0x11) #十六进制 11 ==17

print(bin(3)) #十进制转换成二进制 0b11
print(int(0b11)) #二进制转换成十进制 3
print(int(0o11)) #八进制转换成十进制 9
print(int(0x11)) #十六进制转换成十进制 17
print(oct(8)) #十进制转换成八进制 0o10
print(hex(10)) #十进制转换成十六进制 0xa
print(oct(0b11)) #二进制转换成八进制 0o3


print('c:\nasd\nasd')

c:
asd
asd

print(r'c:\nasd\nasd')  #加r或者R变成元素字符串  或者使用双斜杠
c:\nasd\nasd
print('abcasd'[0:6])  #abcasd  

print('abcasd'[0:20]) #abcasd 可以大于字符串的总长度

set使用
print({1,2,3,4} & {1,3})#  {1, 3} 交集
print({1,2,3,4}- {1,3})# {2, 4} 差集
print({1,2,3,4} | {5}) # {1, 2, 3, 4, 5} 并集

闭包
闭包=函数+环境变量(非全局变量,介于f1和f2之间的变量 不能放到f2里面)
把函数和环境变量包裹在一起 不受外部环境变量影响

def f1():
  a=100
  def f2():
    return a
  return f2

a=50
f=f1()
print(f()) 100 而不是50

闭包的作用


装饰器
编程原则 :对修改是封闭的 对扩展是开放的

装饰器的作用 不改变函数的调用方式 增强函数功能 语法糖@符号

装饰多个函数时 如果参数数量不一致 需要用到可变参数以及关键字参数,一般会明确的传参
import time
def de(func):
def wrapper(*args,**kw):
print(time.time())
func(*args)
return wrapper
@de
def f1(a,b,c):
print(a,b,c)
@de
def f2(a,b):
print(a,b)

f1(1,2)



reuqests上传下载文件
上传时 是open读取文件再请求接口
下载时 get请求到数据后open 写入到文件中才能保存



mock服务
1、flask接口模拟
2、fiddler直接指定规则autoresponse
3、import mock


__ini__.py文件的作用
1、模块引入的时候会自动执行__init__.py文件的内容
2、如果包下面的很多模块都用到某些库,可以在__init__.py文件中导入一次即可

3、模块不会重复导入


形参 为定义函数的时候传的参数
实参 为调用函数的时候传的参数

def add(x,y):
  return x/y

调用的时候可以改变x,y的顺序 add(y=1,x=2) 和 add(2,1)的结果是一样的


作用域
x = 1
def change(a):
x=x+1
print(a)

change(x)
会报错 对x进行运算报错 UnboundLocalError: local variable 'x' referenced before assignment

这是因为在函数内部对变量赋值进行修改后,该变量就会被Python解释器认为是局部变量而非全局变量,当程序执行到a+=1的时候,因为这条语句是给a赋值,所以a成为了局部变量,那么在执行return a(或是print a)的时候,因为a这个局部变量还没有定义,自然就会抛出这样的错误。

如果
x = 1
def change(a):
print(x)
change(x)
正常打印



python3 中 默认参数和可变参数位置可调换 必选参数 默认参数(可变参数) 可变参数(默认参数) 关键字参数
Python2 参数顺序:必选参数、默认参数、可变参数和关键字参数。
posted @ 2020-06-19 11:07  愤怒的乌鸦  阅读(152)  评论(0)    收藏  举报