什么网站找厂做袜子,推广衣服的软文,潍坊做网站哪家好,网络推广专员是干什么的int 整数. 主要⽤用来进⾏行行数学运算 str 字符串串, 可以保存少量量数据并进⾏行行相应的操作 bool判断真假, True, False list 存储⼤大量量数据.⽤用[ ]表⽰示 tuple 元组, 不可以发⽣生改变 ⽤用( )表⽰示 dict字典,保存键值对,⼀一样可以… int 整数. 主要⽤用来进⾏行行数学运算 str 字符串串, 可以保存少量量数据并进⾏行行相应的操作 bool判断真假, True, False list 存储⼤大量量数据.⽤用[ ]表⽰示 tuple 元组, 不可以发⽣生改变 ⽤用( )表⽰示 dict字典,保存键值对,⼀一样可以保存⼤大量量数据 set 集合, 保存⼤大量量数据. 不可以重复. 其实就是不保存value的dict 三. 布尔值(bool)取值只有True, False. bool值没有操作. 转换问题: str int int str int bool boolint str bool bool str int(str) str(int) bool(int). 0是False 非0是True int(bool) True是1, False是0 bool(str) 空字符串串是False, 不空是True str(bool) 把bool值转换成相应的值 四. 字符串串(str)把字符连成串串. 在python中⽤用, , , 引起来的内容被称为字符串串. 行了噩梦开始了 4.1 切片和索引1. 索引.索引就是下标.切记,下标从0开始 s1 python最⽜牛B print(s1[0])print(s1[1]) print(s1[-1]) print(s1[-2]) 2. 切片,我们可以使⽤用下标来截取部分字符串串的内容 语法: str[start: end] 规则: 顾头不顾腚, 从start开始截取. 截取到end位置. 但不包括end print(s2[0:3]) 从0到3不包括3 print(s2[4:])如果想直接最后直接最后 print(s2[-1:-5])从负一到负五 默认都是往从左往右所以怎么也不能这么数 一会可以有什么步数什么的 print(s2[1:5:2]) 从1到5隔两个一取3就是3个一取负2就反着走从右往左走也隔两个一取正负决定取向方向数决定几个一取 4.2 字符串串的相关操作⽅方法 字符串特别牛逼永不可变任何对字符串的操作都没卵用都要再打一个字符串 s1“我才是真正的彭于晏” s1.capitalize 这样的话什么卵用没有 capitalize 这是大小写转换 这老师不靠谱是真不行啊妈的实践验证这是首字母小写变成大写 大写不变后面的所有大写变小写 小写不变 这个猜测是针对人名的吧 rets1.lower我仅有的一点英语知识所有字母小写 rets1.upper所有字幕大写 rets1.sawpcase这个是真正的大小写转换 ret s1.casefold() 这个和lower 是一样的 就是这个牛逼一点说是什么东欧字母都支持 但是是不长用的 s3 alex eggon,taibai*yinwang_麻花藤 rets3。title Alex Eggon,Taibai*Yinwang_麻花藤 所有被特殊字符隔开的首字母都大写 s4 alex⽼老老男孩wusir # Alex⽼老老男孩Wusir print(s4.title()) 这个中文也算特殊字符 2 切来切去 s5 周杰伦ret s5.center(10, *) 拉长10个字符吧原字符改到里面 算原字符10个字符 print(ret) 改变tab字符长度那个不管了 s7 alex wusi r” ret s7.strip( ) 这个是去掉左右两端的括号 print(ret) lstrip 左边的空格 rstrip 右边的空格 s7 abcdefgabc print(s7.strip(abc)) 没有内容默认去空格 有内容去内容 s8 sylar_alex_taibai_wusir_eggonret s8.replace(alex, ⾦金金⻆角⼤大王) 这个是替换 一定要记得元字符串不可改 ret s8.replace(i, SB, 2 ) 老套路 步长把i换成sb换2次 s9 alex,wusir,sylar,taibai,eggon lst s9.split(,) 字符串切割根据切括号里是啥根据啥切
print(lst)s12 我叫%s, 今年年%d岁了了, 我喜欢%s % (sylar, 18, 周杰伦) # 之前的写法print(s12)s12 我叫{}, 今年年{}岁了了, 我喜欢{}.format(周杰伦, 28, 周润发) # 按位置格式化print(s12)s12 我叫{0}, 今年年{2}岁了了, 我喜欢{1}.format(周杰伦, 周润发, 28) # 指定位置print(s12)s12 我叫{name}, 今年年{age}岁了了, 我喜欢{singer}.format(name周杰伦, singer周润 发, age28) 格式化输出plus 终于有点用了 s13 我叫sylar, 我喜欢python, java, c等编程语⾔言. ret1 s13.startswith(sylar) printret1 这是判断是不是括号内的开头 endwith 是否以括号内结尾 ret7 s13.count(a)
print(ret7) count 是查找括号里的 出现的 次数ret5 s13.find(sylar)
print(ret5) find 是查找括号里的东西所在位置 ret6 s13.find(tory)
print(ret6) find 查找 找不到返回-1 ret7 s13.find(a, 8, 22) # 切⽚片找 print(ret7) 查找8到22 查找a在哪 ret8 s13.index(sylar) # 求索引位置. 注意. 如果找不不到索引. 程序会报错 print(ret8) 解释的很明白了索引是0开始的 和后面的len不一样 s14 123.16s15 abcs16 _abc! print(s14.isalnum())print(s15.isalnum())print(s16.isalnum()) 是否由字母和数字组成的 print(s14.isalpha())print(s15.isalpha())print(s16.isalpha()) 是否由字母组成 print(s14.isdigit())print(s14.isdecimal())print(s14.isnumeric()) # 这个⽐比较⽜牛B. 中⽂文都识别.print(s15.isdigit()) print(s16.isdigit()) 是否由数字组成不包括小数点 6. 计算字符串串的⻓长度 s18 我是你的眼, 我也是aret len(s18) # 计算字符串串的⻓长度print(ret) 注意: len()是python的内置函数. 所以访问⽅方式也不⼀一样. 你就记着len()和print()⼀一样就⾏行行 了了 这尼玛哪一样了 也不也是print打印出来吗 就记得len是求长度就完了 也好使而且不是从0开始数的 7. 迭代 我们可以使⽤用for循环来便便利利(获取)字符串串中的每⼀一个字符 语法: for 变量量 in 可迭代对象: pass可迭代对象: 可以一个⼀个往外取值的对象 就是固定公式你肿么破至于这个可迭代对象我还搞不清楚 现在学的 字符串 数字元组啊什么的都是 可迭代吧。 in有两种⽤用法:1. 在for中. 是把每⼀一个元素获取到赋值给前⾯面的变量量. 2. 不不在for中. 判断xxx是否出现在str中. 自己试了一下第二个In感觉用处不大 # 练习, 计算在字符串串I am sylar, Im 14 years old, I have 2 dogs!s20 I am sylar, Im 14 years old, I have 2 dogs!count 0for c in s20: if c.isdigit():count count 1print(count) 第17个是数字一直打0到第17开始是1一直都是1 就是查找数字在s20里出现的次数 这样的话第三天的完了letsgo第四天的也没什么特难的都是英语难 ⼀一. 列列表1.1 列列表的介绍 列列表是python的基础数据类型之⼀一 ,其他编程语⾔言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素⽤用 , 隔开⽽而且可以存放各种数据类型: lst [1, 哈哈, 吼吼, [1,8,0,百度], (我,叫, 元, 组), abc, {我 叫:dict字典},{我叫集合,集合}] 列列表相比于字符串串. 不仅可以存放不同的数据类型. ⽽而且可以存放⼤大量量的数据. 32位python可以存放: 536870912个元素, 64位可以存放: 1152921504606846975个元素.⽽而且列列 表是有序的(按照你保存的顺序),有索引, 可以切⽚片⽅方便便取值. 2.2 列列表的索引和切片 列列表和字符串串⼀一样也拥有索引: lst [麻花藤, 王剑林林, ⻢马芸, 周鸿医, 向华强] print(lst[0]) # 获取第⼀一个元素print(lst[1])print(lst[2]) lst[3] 流动强 # 注意. 列列表是可以发⽣生改变的. 这⾥里里和字符串串不不⼀一样 print(lst) # [麻花藤, 王剑林林, ⻢马芸, 流动强, 向华强] 这个修改比较简单 s0 向华强s0[1] 美 # TypeError: str object does not support item assignment 不不 允许改变print(s0) 这边的话是个坑这个的话 s0是字符串字符串不可改 lst [麻花藤, 王剑林林, ⻢马芸, 周鸿医, 向华强] print(lst[0:3]) # [麻花藤, 王剑林林, ⻢马芸] print(lst[:3]) # [麻花藤, 王剑林林, ⻢马芸] print(lst[1::2])
print(lst[2::-1])print(lst[-1:-3:-2])# [王剑林林, 周鸿医] 也有步⻓长# [⻢马芸, 王剑林林, 麻花藤] 也可以倒着取 # 倒着带步⻓长 这个和昨天的序列一样简单 序列加步长 ⼆二. 列列表的增删改查1. 增, 注意, list和str是不⼀一样的. lst可以发⽣生改变. 所以直接就在原来的对象上进⾏行行了了操作 lst [麻花藤, 林林俊杰, 周润发, 周芷若]print(lst)lst.append(wusir)print(lst) append在这组序列的最后面加一个 lst [麻花藤, 张德忠, 孔德福]lst.insert(1, 刘德华) # 在1的位置插⼊入刘德华. 原来的元素向后移动⼀位 可选序列 和上边的比应该是一个可以选序列一个不可选 print(lst) lst [王志⽂文, 张⼀一⼭山, 苦海海⽆无涯] lst.extend([麻花藤, 麻花不不疼]) print(lst) 迭代添加就是智能添把里面的元素一个个添加而append就是无脑在后面加一个 2. 删除pop, remove, clear, del 只有这几种 后文一点一点讲解用法 lst [麻花藤, 王剑林林, 李李嘉诚, 王富贵] print(lst)deleted lst.pop() # 删除最后⼀一个 不选数默认最后一个 print(被删除的, deleted) 这个pop括号里选的啥序列就删除哪个元素 print(lst) el lst.pop(2) # 删除2号元素 print(el) print(lst) lst.remove(麻花藤) # 删除指定元素 只能指定元素不能写序列 lst.remove(哈哈) # 删除不不存在的元素会报错 print(lst) lst.clear 清空lst 全没 del lst[1:3] del lst【1】 只删除一个也行 print(lst) 删除序列1到2 3 顾头不顾尾 3. 修改 索引切片修改 lst [太⽩白, 太⿊黑, 五⾊色, 银王, ⽇日天] lst[1] 太污 # 把1号元素修改成太污 print(lst) lst[1:4:2] [麻花藤, 哇靠] # 切片修改也OK. 如果步⻓不是1, 要注意. 元素的个 数 这个也和之前的一样 rint(lst) lst[1:4] [李李嘉诚个⻳龟⼉儿⼦子] # 如果切⽚没有步长或者步长是1. 则不⽤关心个数 就是吧1到3所有的都换一遍 print(lst) 4. 查询,列列表是⼀一个可迭代对象,所以可以进⾏行行for循环 只有这一种查询方式 for el in lst:print(el) 只有这一种查询方式 使用方法 把想查询的东西 在下面再写一行for el in lst if el “想查询的” 然后这行再写打印它啊 加减啊 首字母大小写啊 判断是不是什么开头啊 这一般不用了 你都知道你要输入的也可能用户输入的 5. 其他操作 lst [太⽩白, 太⿊黑, 五⾊色, 银王, ⽇日天, 太⽩白] c lst.count(太⽩白) # 查询太⽩白出现的次数 这个查询也没什么改变 print(c) lst [1, 11, 22, 2]lst.sort() # 排序. 默认升序 print(lst)lst.sort(reverseTrue) # 降序 print(lst) 升序降序都要打的reverse 默认是f的 你要想倒序就要改成t lst [太⽩白, 太⿊黑, 五⾊色, 银王, ⽇日天, 太⽩白] print(lst)lst.reverse() 180 度 倒序print(lst) l len(lst) # 列列表的⻓长度print(l) 这个排序永远没有0的 就是1正常不反人类数的 三. 列列表的嵌套 采⽤用降维操作. ⼀一层⼀一层的看就好. lst [1, 太⽩白, wusir, [⻢马⻁虎疼, [可⼝口可乐], 王剑林林]]# 找到wusir print(lst[2])# 找到太⽩白和wusir print(lst[1:3])# 找到太⽩白的⽩白字 print(lst[1][1])# 将wusir拿到. 然后⾸首字⺟母⼤大写. 再扔回去 s lst[2]s s.capitalize() 这都没什么难的就是把之前的记住这都好用lst[2] s print(lst)# 简写lst[2] lst[2].capitalize()print(lst) 序列可以直接更改 所以简单点 # 把太⽩白换成太⿊黑lst[1] lst[1].replace(⽩白, ⿊黑) 替换单词一样 print(lst) # 把⻢马⻁虎疼换成⻢马化疼lst[3][0] lst[3][0].replace(⻁虎, 化) 当替换列表中的东西时这么用 多维吗 将为操作 print(lst[3][0]) lst[3][1].append(雪碧)print(lst) 这条有点多余了 四. 元组和元组嵌套元组: 俗称不可变的列列表.⼜又被成为只读列列表, 元组也是python的基本数据类型之⼀一, ⽤用⼩小括 号括起来, ⾥里里⾯面可以放任何数据类型的数据, 查询可以. 循环也可以. 切片也可以. 但就是不能 改. tu (1, 太⽩白, 李李⽩白, 太⿊黑, 怎么⿊黑) print(tu) print(tu[0])print(tu[2])print(tu[2:5]) # 切⽚片之后还是元组 # for循环遍历元组 for el in tu: print(el) 自从学了for循环用的太多了这个早记得了 # 尝试修改元组# tu[1] ⻢马⻁虎疼 # 报错 tuple object does not support item assignment tu (1, 哈哈, [], 呵呵)# tu[2] [fdsaf] # 这么改不不⾏行行 tu[2].append(麻花藤) # 可以改了了. 没报错 tu[2].append(王剑林林)print(tu) 元素不可变这里指的是元组里的元素不可变再里面的子元素可变 例如列表 子元素如果是元素还是不可变再循环下去没试 元组中如果只有⼀一个元素. ⼀一定要添加⼀一个逗号, 否则就不是元组 tu (1,) print(type(tu)) 元组也有count(), index(), len()等⽅方法. 可以⾃自⼰己测试使⽤用 五. rangerange可以帮我们获取到⼀一组数据. 通过for循环能够获取到这些数据. for num in range(10):print(num)for num in range(1, 10, 2):print(num)for num in range(10, 1, -2):print(num)# 反着来, 和切⽚片⼀一样 这个range 和普通的for 变量 in 迭代对象最大的区别就是 r一般对应数字假如123 打印出的是每一行一个数 1 2 3 而第二个for 是每一次都把123打出来了 ⼀一. 字典的简单介绍字典(dict)是python中唯⼀一的⼀一个映射类型.他是以{ }括起来的键值对组成. 在dict中key是 唯⼀一的. 在保存的时候, 根据key来计算出⼀一个内存地址. 然后将key-value保存在这个地址中.这种算法被称为hash算法, 所以, 切记, 在dict中存储的key-value中的key必须是可hash的,如果你搞不懂什什么是可哈希, 暂时可以这样记, 可以改变的都是不可哈希的,那么可哈希就意味着不可变. 这个是为了了能准确的计算内存地址⽽而规定的. 已知的可哈希(不可变)的数据类型: int, str, tuple, bool不可哈希(可变)的数据类型: list, dict, set 语法 :{key1: value1, key2: value2....} 注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据 dic {123: 456, True: 999, id: 1, name: sylar, age: 18, stu: [帅 哥, 美⼥女女], (1, 2, 3): 麻花藤}print(dic[123])print(dic[True])print(dic[id])print(dic[stu])print(dic[(1, 2, 3)])# 不不合法# dic {[1, 2, 3]: 周杰伦}# dic {{1: 2}: 哈哈哈}dic {{1, 2, 3}: 呵呵呵} # list是可变的. 不不能作为key # dict是可变的. 不不能作为key # set是可变的, 不不能作为key dict保存的数据不是按照我们添加进去的顺序保存的。是按照hash表的顺序保存的。而hash表不是连续的所以不能进行切片工作它只能通过key来获取dict中的数据 二. 字典的增删改查和其他相关操作 1. 增加 dic {}dic[name] 周润发 # 如果dict中没有出现这个key, 就会新增⼀一个key-value的组 合进dictdic[age] 18 强行添加没啥说的 刚才翻了一下上边那么多 没研究明白 记得之前也有强行添加类的啊print(dic) # 如果dict中没有出现过这个key-value. 可以通过setdefault设置默认值 dic.setdefault(李李嘉诚) # 也可以往⾥里里⾯面设置值. 后面没设置值显示值为Nonedic.setdefault(李李嘉诚, 房地产) # 如果dict中已经存在了了. 那么setdefault将不不会 起作⽤用 print(dic) 2. 删除 ret dic.pop(jay) pop和前文一样bj4
print(ret)del dic[jay] del同上
print(dic)# 随机删除.ret dic.popitem() pycharm也不知道该说是修复了还是说优化了还是说bug 只删除最后一个了 不是随机删除了 # 清空字典中的所有内容dic.clear() 这个clear 这很干净 3. 修改 dic {id: 123, name: sylar, age: 18}dic1 {id: 456, name: 麻花藤, ok: wtf}dic.update(dic1) # 把dic1中的内容更更新到dic中. 如果key重名. 则修改替换. 如果不不存 在key, 则新增.print(dic)print(dic1) dic打印出来的是全的dic1就是个弟弟 端茶倒水的 4. 查询 查询⼀一般⽤用key来查找具体的数据. print(dic[name]) # print(dic[sylar]) # 报错 如果有这个key直接打出来了 没有这个key就报错 prit(dic.get(ok)) print(dic.get(sylar)) # None 这个最大的优点就是 如果没有这个不会报错会出None print(dic.get(sylar, ⽜牛B)) # ⽜牛B 这个就是如果没有就输出自己打的value2值 5. 其他相关操作 dic {id: 123, name: sylar, age: 18, ok: 科⽐比} print(dic.keys()) # dict_keys([id, name, age, ok]) 不不⽤用管它是什什么.当 成list来⽤用就⾏行行for key in dic.keys(): 就是list 了 无脑背吧 print(key) print(dic.values()) # dict_values([123, sylar, 18, 科⽐比]) ⼀一样. 也当list来⽤用for value in dic.values(): 同上 print(value)print(dic.items()) # dict_items([(id, 123), (name, sylar), (age, 18), (ok, 科⽐比)]) 这个东⻄西也是list. 只不不过list中装的是tuple 把list里面全变成tuple了for key, value in dic.items(): # ?? 这个是解构 print(key, value)# 解构a, b 1, 2print(a, b) (c, d) 3, 4
print(c, d)e, f [1, 2, 3]
print(e, f)# 解构的时候注意数量量必须匹配 1. is 和 的区别 #小数据池 # 数字小数据池的范围 -5 ~ 256 # 字符串中如果有特殊字符他们的内存地址就不一样 # 字符串中单个*20以内他们的内存地址一样,单个*21以上内存地址不一致 # 黑框框 终端 # a alex # a1 alex # print(a is a1) # Fales # n 5//2 # n1 2 # print(n is n1) #True # a a*21 # b a*21 # print(a is b) False # a aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # b aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa # print(a is b) Ture # n -6 # n1 -6 # print(n is n1) #False # n -5 # n1 -5 # print(n is n1) #True # n 257 # n1 257 # print(n is n1) #True #总结: # 比较 比较的俩边的值 # is 比较 比较的是内存地址 id() 2. 编码和解码 ascii 码: 不支持 中文 支持 英文 数字 符号 8位 一个字节 gbk码 国标: 支持 中文,英文,数字,符号 英文 16位 二个字节 中文 16位 二个字节 unicode 万国码 支持 中文,英文,数字,符号 英文 32 位 四个字节 中文 32位 四个字节 utf-8 长度可变的万国码 最少用8位 英文 8位 一个字节 中文 24位 三个字节 Python3中 程序运行阶段 使用的是unicode 显示所有的内容 bytes类型 传输和存储都是使用bytes pycharm 存储的时候默认是使用utf-8 总结: is 和 区别 is 比较内存地址 id() ---- 获取内存地址 小数据池: 数字的小数据池范围是 -5 ~ 256 字符串: 字符串中不能包含特殊符号 - * / 等等 字符串单个字符*20以内内存地址都是一样的,单个字符*21以上内存地址不一致 注意: pycharm是个坑, 一个py文件中所有相同的字符串 一般都是使用一样的内存地址 比较俩边的值 编码和解码 encode(编码方式) ---- 拿到明文编码后对应的字节 decode(编码方式) -----将编码后的字节解码成对应的明文 注意: 用什么进行编码就要什么进行解码 不然后会懵逼! 转载于:https://www.cnblogs.com/Mrszhao/p/9410520.html