# 面试题 把一个列表 排序 去重
lst = [1,2,3,4,12,3,4]
print(list(set(lst)))
# 面试题:
# a = 10
# b = 20
# a,b = b,a # 10000%
# print(b) # 10
# print(a) # 20
# 面试题:
# print(lst)
# n = ()#元组
# print(type(n))
# n = ('')#字符串
# print(type(n))
# n = ('',)#元组元组
# print(type(n))
# n = ('',2)#元组
面试题:
# print(range(0,10)) # python3 中range(0, 10) 是一个可迭代对象 print(range(0,10))#3.6版本的是它的原始态 3.5的xrange 也是原生态的,3.5的就不是
python2 与py]thon3 的区别
Python2 源码不统一 重复代码
python2 print 输出是不需要加括号的 input输出的是什么类型 就是什么类型
python3 print是需要加括号的 input 输出的都是字符串
翻译型 比如jiava c++ 开发效率慢 运行速度快
解释型 开发效率开 运行速度慢
变量
1.必须是 字母数字下划线组成
2.不能以数字开头
3.不能是关键字
4.不能太长
5不能是中文和拼音
6.区别大小写
7.要具有描述性
写法
大驼峰 单词的首字母都是大写
小驼峰 第一个单词的首字符要小写 其它的大写
常量 就是 把变量大写就可以了
初识编识
gbk 中国的 英文是用一个字节 8 位 中文是俩个字节 16位
ascii 一个字节 表示一个字母 没有中文 一共有256种
unicode 万国码 四个字节 32位
utf-8 英文一个字节 8位
欧洲俩个字节 16位
亚洲三个字节 32位
bit 位
bytes 字节
1bytes = 8bit
1B = 8bit
1024B =1KB
1O24KB=1MB
1O24MB=1GB
1O24GB=1TB
If while 循环
格式化输出
%s 站字符 %d 站整型 print(' {} {}' .formate ( 对应的内容)) print('{} {} {}'.format(name,age,hobil))
运算符
比较运算符
< >= == !=
逻辑运算符
or and not
算数运算符
- + %* /
赋值运算符
-= + = %= /=
成员运算符
in not in
数据类型
type 判断是什么类型
int (整型) 整数 str()强转为字符串 int-----bool bool(0) =False bool(其它数)=True
str (字符串) int()强转为整型 只有整数型的字符串才可以 str---bool boo('') 和 bool()= False bool(有内容)=True
str 变为列表 变量名=' '.join(str)
tsr.upper() 全部大写
str.lowr()全部小写
str.capetalize()首字母大写
str.replace(老的,新的,个数)替换元素
str.find('元素')查找下标 没有的话返回-1
str.index('元素'')查找下标 没有的话直接报错
str.count(元素)统计出现多少次这个元素
str.split('内容') 与什么分割
str.stirp()去一头一尾的空格
bool(布尔值)True False bool--int int(Ture) = 非零的数 int(Fals)=0
list (列表) 可以存储大量的数据,是可变的 不可哈希的,有增删查改 soert 给列表排序的 默认升序 soert(resvere=True) 是降序 resvere 是倒叙 列表里的要全部是 整型的元素 li.split 把列表转化为字符串
增:li=[]
li.append("元素'').这个是追加在后面的
li.insert(下标,内容)按下标插入
li .extend() 迭代添加 整型与bool值都是不可迭代添加的
li+li 自加 # lst = [1,2,3,4]
lst + lst
print(lst + lst)#运行的结果就为[1, 2, 3, 4, 1, 2, 3, 4]
print(5*lst)#所以这个的运行结果就为[1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
删:
del li 删除整个列表
del li[] 可按下标删除 可切片删除
li.pop(下标) 有返回值按下标删除 3.6 是默认删除最后一个
li.clear0 清空整个列表
li.remove(元素) 按元素去删除
查
按下标查看
for 循环查看
改
li[] = 改的元素 按索引改 还有按切片改
li[].replize 替换
ret = lst.index('高圆圆') # 通过内容查找下标
# print(ret)
# print(lst.count('高圆圆')) # 计数
ret = lst.reverse() #翻转
# print(ret) # 这是一操作,没有返回的内容
lst.sort() # 排序 默认升序
# lst.sort(reverse=True) # 降序
tuple(元组) 不可变 的
tu=() tu('')括号里只有一个引号的时候 引号里边有个内容 的是 str 目前其它的都是 元组
可查 有下标 按下标查询
for 循环查询
dict (字典) 有键值 keys(键,是不可变的) valnues(值,随便什么类型的都可以) items (键值对)
增
dic[键]=值 字典原有的键 那就 覆盖 没有的话就增加
dic.setefoude(键 ,值) 字典原有的话 就不添加 没有的话 就添加到后边
删
dic.pop(键) 按键删除
del dic 删除整个字典
del dic[键] 按键删除
dic.clera() 清空整个列表
改
dic[键] =值 按键改 直接覆盖
# dic.popitem() # 随机删除 python3.6 删除最后一个 3.5 中随机删除:
dic1 = {'33':'jj','44':'TT'}
dic2 = {'33':'gg','66':'pp'}
# dic1.update(dic2)
# dic2.update(dic1)
# 更新 被更新的内容如果在 要更新的内容中那值就会被覆盖
# 两个字典中,都没有一样的就是合并
# dic2['33'] = 'tsp' #是字典中没有的时候才叫增,如果字典中这个键存在就叫做修改
# 查:
# dic2 = {'33':'gg','66':'pp'}
# print(dic2[2]) # 通过键查找 如果键不存在就报错
# print(dic2.get(2)) # 通过键查找 如果键不存在不会报错,返回None
# print(dic2.setdefault('33')) # 不存在返回None
set (集合) 无序的 没有下标 储存数据的
增
se.add(内容) 增加的内容
删
set.remove(元素)按元素删除
set. clear
查
for 查
list ---tupe tuple(list)
tupe ---list list(tuple)
其它是不可以转化为字典的 只能字典转化为 list 并且还是键的
对于元组来说浅拷贝只是拷贝第一层 一起变化的
对于元组来说深拷贝是拷贝的内存地址是不一样的 元素是共同的是一样的 不一样的的时候内存地址是不一样的
enkode
dikoude
print('name:{} age:{} 爱好:{}'.format(name,age,hobil))