1.1 python
1.1.1 关键字
一. 注释
单行注释 #
多行注释 ''' 三个引号,可以是三个单引号也可以是三个双引号 '''
二.print
可通过逗号间隔输出多个量
print("HELLOWORLD","helloworld","hello world")
print("helloworld")
a="hello world"
print(a)
python中print在后面自动添加的为换行,因此当你不需要换行时,加上,end=" "
三.input,del
input 将程序外部的变量读取到程序中
a=''hello world"
del a
a=input("请输入消息:")
print(a)
当不需要变量a时可以删除a,以防占用空间
1.2.1 标识符与数据类型
一.关键字的命名
#查找关键字
import keyword
print(keyword.kwlist)
二.python的数据类型
list 可修改
touple 不可修改
set 不可重复
1.2.2 数据类型
一. 数字类型与运算符
int 整形
float 浮点
complex 复数
#获取数据类型
a=100
print(type(a))
# ** 求幂 (2的三次方)
print(2**3)
# // 取整
print(23//8)
二进制运算:二进制比对后得到的二进制值
eg:根据二进制判断 根据位去与有一个为0则该值就是0
二.字符串str
1.字符串连接
2.字符串重复
3.获取字符串中的字符
4.截取字符串
msg="hello"
msg2="world"
#1.字符串连接
print(msg+msg2)
#2.字符串重复
#将msg重复三遍
print(msg*3)
print(msg+msg+msg)
#3.获取字符串中的字符
#索引去获取字符串中的字符
print(msg[1])
#4.截取字符串
开始结束为左闭右开 从下标2截取到3 同样可以截取负数 若为空则从0开始
start=2
end=3
print(msg[start:end])
print(msg[-2:-1])
5.格式化字符串
age=18
sex="男"
print("我性别%s,今年%d岁" %(sex,age))
%.1保留一位小数
6.转义字符
\n 换行 \t tab
加r后,此时转义字符不起效果
print(r"hello\tworld")
三.列表
一个有序的序列,序列中每个元素都分配一个数字(位置,索引)
1.我们可以使用方括号,中括号来创建列表
2.我们可以直接将序列放在list(seq)
列表创建
nums=[1,2,3,4,5]
letters=list("abc")
3.列表可以用变量的相同操作进行加,幂
#追加
l1=[5,6,7]
l1.append(8)
#扩展
l2=[1,2,3]
l2.extend(l1)
#插入,在1的位置插入一个0
l1.insert(1.0)
四.元组
一个有序的序列,序列中每个元素都分配一个数字,元组数据中的每一个数据不允许修改
1.我们可以使用圆括号,小括号来创建元组
2.我们可以直接将序列放在tuple(seq)
t1=(1,2,3,4,5)
t2=tuple("abc")
#获取长度
print(len(t1))
#获取最大值
print(max(t1))
#获取最小值
print(min(t1))
五.字典
是一种可变容器模型,可以存储任意类型对象
字典以键值对存储数据,key-value形式,键值使用冒号:分隔,每个键值中间用,隔开
字典包括在大括号{}中
字典键的特性,不可重复,不可变
eg={key1:value,key2:value}
d={"name":"rock","age":18,"hobby":"coding"}
#获取字典中的数据
print(d["name"])
print(d.get("age")) //当查找的键值不存在是法一报错,法二返回空
#字典数据的添加,修改,删除
d["msg"]="hello world"
del d["msg"]
#获取所有的key
print(d.keys())
#获取键值
print(d.valus())
六.集合
集合是python中最基本的数据结构,用来存储最基本的数据结构,用来存储一个无序的不重复的元素序列
集合的标识䦹大括号{}中间的元素用逗号隔开
set{序列}
s={"abc","123"}
空集合的创建
s=set()而不是 s={}
- 差集
| 并集
& 交集
s={"234","abc","123"}
#添加
s.add("010")
1.3.1 条件分支
if-else 语句 与c相同 if后的语句不需要加括号
1.3.2 for 循环
for item in[2,3,4]:
print(item)
1.3.3 while 循环
while expression(表达式):
while true:
print("hello world")
1.4.1函数的定义
定义时声明的参数叫形参
调用时传递进来的参数叫做实参
位置参数:
def 函数名(参数列表):
函数体
return 数据 //返回的数据可以设置为列表,元组等
print(def)//可以输出返回值
关键字参数(存在默认值):
def print_info(name=None,age=0):
print("%s 今年%d" %(name,age))
print_info(name="小明",age=18)
不定长参数(可以是不定长的动态参数):
print_info2(*args):
print_info3(**kwargs): #自动将参数转换为字典
1.4.2匿名函数
lambda 参数: 返回值
通常用在只使用一次的场景下,且处理操作相对简单
lambda num1,num2 : num1+num2
1.5.1 python过程中的异常
一·异常处理
在python中使用
将可能出现异常的代码放到其中
def div(a,b):
try:
c=a/b
except:
return "代码异常"
return c
return = div(10,0)
print(result)
二·抛出异常
1.raise + 异常信息
2.assert a != 0 ,"a不能为0"
1.6.1 模块
模块能更有逻辑的组织代码,模块能定义函数,变量,类等
包是一个和模块不分家的存在,但一个模块的内容过多时,我们会考虑将模块的内容转换到包中
包和文件的区别
在于 _init_py
#将module中的sum导入
from Module import sum
result = sum()
第三方模块
安装模块 plp install django
二.内置模块
关键:首先需要导入import就可以
1.os模块 与系统进行对接
2.random模块
random是python中的一个随机数的模块
生成一个0~1随机浮点数
random
生成一个[a,b]之间的随机数
randint
从序列中选择一个元素
choice
3.math模块
pow 乘方
floor 向下取整
ceil 向上取整
sqrt 开平方
4.secrets 保密模块
5.hash
对常用的MD5,sha都可以直接进行支持
构建一个hash对象
new
更新需要进行hash转换的数据
updata
获取摘要信息
digest
获取字符串的摘要信息
hexdigest
#
hash_obj=hashlib.new("md5","rock",encode("utf-8"))
print(hash_obj.digest())
#
print(hash_obj.hexigest())
6.time
7.datetime
内置的一个用来操作日期时间模块
获取当前时间信息
datetime.now
获取时间差
timedelta
自己构建日期时间
datetime
三.第三方模块
1.第三方模块的安装
通过包管理工具进行安装
下载包的源码进行setup.py
2.python包管理工具
pip install ...下载
pip uninstall ... 删除
-i http://pyp1.douban.com/simple
-i 切换下载源
3.requests模块
网络请求模块,通常用在爬虫和中间层服务器中,实现请求的发送,响应的接收。
4.requests请求
请求方式get
请求响应
response
text(内容)
status_code(请求状态码)
import requests
response=requests.get("https://www.baidu.com")
print(response.text或.status_code)
常见问题:
备注
运算符的优先级
vlsualgo.net/zh 包含许多数据结构算法
内置排序 sorted(l)
忘记在 if , elif , else , for , while , class ,def 声明末尾添加 “:”(导致 “SyntaxError :invalid syntax”)
1、该错误将发生在类似如下代码中:12if spam== 42 print('Hello!')
使用 = 而不是 ==(导致“SyntaxError: invalid syntax”)= 是赋值操作符而 == 是等于比较操作。
2、该错误发生在如下代码中:if spam= 42: print('Hello!')
错误的使用缩进量(导致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”)