自然语言用双引号,机器语言用单引号 例如dict的key
单行注释 #
多行注释 ''' '''
输入print
%s 字符串的占位符
%d 数字的占位符
如语句中有占位符那么所有的%都是占位符,可以用%%转义
n**m n的m次幂
逻辑运算符
and 并且
or 或者
not 非的意思
运算顺序
and or not 同时存在 先算括号然后算not 然后算and 最后算or
x or y 如果x==0,那么就是y,否则就是x,记住and跟or相反,如果x==0,那么就是x,否则就是y
bit_length() 二进制的长度
bool() 强制转化为boolean类型
空的东西都是Flase,非空的东西都是true
切片可以对字符串进行截取
语法s[起始位置:结束位置] 包左不包右
语法s[其实位置:结束位置:步长] 步长是没几个取一个,就是取后一个
字符串是不可变的对象,所以任何操作对原字符串本身是不会发生改变的
字符串操作capitalize 首字母大写
lower 全部转换成小写
upper 全部装换成大写
swapcase 大小写互相交互位置
title() 单词的首字母大写
strip 去掉空格
lstrip 去掉左边空格
rstrip 去掉右边空格
split 切割
format 指定位置的索引 {}
startswith 判断字符串是不是某某开头
endswith 判断字符串是不是某某结尾
count(a) 查找"a"出现的次数
find("aa") 查找"aa"出现的位置,如果没有返回-1
isalnum 判断是否有字母和数字组成
isalpha 判断是否由字母组成
isdigit 判断是否有数字组成
isnumeric 判断数字(中文)
len() 内置函数.直接使用.不用点操作.判断字符串的长度
for 变量 in 可迭代对象 循环遍历
元组不可变,只读 ("a",) tuple 元组中的元素之时不允许删除但是我们可以删除整个元祖
元祖的不可变的意思是子元素是不可变,而子元素内部的子元素是可以变,这取决于子元素是否是可变对象
range(开始,结束,步长) 数字
insert 索引添加
lst.insert(1,"刘德华")
extend 迭代添加(用新列表扩展原来的列表)
lst.extend(["马化腾","小泽"])
字典 dict字典的key必须是可哈希的,不可变,value没有限制
不是按照我们保存的顺序保存的,无序的
增
setdefault() 如果字典中已经包含了这个key,不在继续保存
如果key重复了,会替换原来的value
dict.update(dict2)
把字典参数dict2的key/value对更新到字典dict里,如果键值有重复,更新替换
删除
pop() 删除一个元素返回value
popitem() 随机删除
clear() 清空
查询
div[key] 如果key不存在就会报错
get("aa","bb") 可以通过key来获取value的值,如果key不存在,返回None,可以给出一个默认值,当key不存在的时候返回默认值
keys 返回所有的key,虽然不是列表,但是可以迭代循环
values 返回所有的value
items 拿到所有的键值对
enumerate 枚举
is比较内存地址是否相等
小数据池:字符串 数字
字符串
不能有特殊字符
s * 20还是同一个地址,s * 21以后就是两个地址
数字的范围: -5-- 256
编码各个编码之间的二进制,是不能相互识别的,会产生乱码
文件的存储,传输,不能是unicode(只能是utf-8 utf-16 gbk )
str 在内存中是用unicode编码
bytes 类型
s=b'alex'
encode 编码,如何将str-> bytes
decode 解码
fromkeys
dic.fromkeys(keys,value) 返回的是一个字典 ,将keys的所有元素分别打印,对应的是value
join() 把列表变成字符串
列表不能再循环的时候删除,因为索引会跟着改变
# # 冒泡排序 # # lst=[86,3,5,7,23,53,13] # # for i in range(len(lst)): # 记录内部排序的次数 # # i=0 # # while i<len(lst)-1: # # if lst[i]>lst[i+1]: # # lst[i],lst[i+1]=lst[i+1],lst[i] # # i=i+1 文件操作r,rb只读(字节b)
w,wb 只写
a,ab 追加
r+ 读写
在r+模式下,如果读写了内容,不论读取内容多少,光标显示的是多少,在写入或者操作文件的时候都是在结尾进行的操作
read
w+ 写读
a+ 写读(追加写读)
seek(n) 光标移动的位置
seek(0) 开头
seek(0,) 第二个参数 0:在开头,1:在当前,2:末尾
write 在没有任何操作之前进行写,在开头写,如果读取过后就在末尾写
tell()
移动到当前位置
文件修改
创建新文件,把修改后的内容写入新文件,删除老文件,重命名新文件
rename 改名字
import os
flush() 刷新缓冲区
def 函数名
三元运算符
a if a>b else b*food 可以传入任意的位置参数,动态参数必须在位置参数后面,收到的内容是元组tuple
** 来接收动态关键字参数
关键字参数必须在位置参数后面,否则参数会混乱
顺序:
位置参数>*args>默认值参数>**kwargs
globals 全局作用域
不再使用局部作用域中的内容而改成全局作用域中的变量
nonlocal表示在局部作用中,调用父级使用空间中的变量(父级使用内部变量)
locals() 局部作用域