与用户交互
关键字 input('需要用户输入的内容')
在python2中,需要自己定义input输入的数据类型,在python3统一处理为字符串
print('打印的内容)
print自带换行符,/n 取消换行,end=''
格式化输出
固定好一些内容和格式,在需要的时候只需要修改一部分就可以输出了
1.关键字:占位符: %s可以用于任何的数据类型,%d只用于数字
格式:变量名 = %s同学你好
print(变量名 % 要替换的内容) 用几个占位符,就要写几个内容
2.第二种是format
用法比%s更好用一点,可以无限次引用
l1 = lizhi
l2 = 18
l3 = f'(ma name is {l1}, ma age is {l2})
常用的运算符
- 基本运算符
基本运算: + - * / ** //
简化写法:l1 += 1 代表 l1 = l1 + 1
- 常用赋值符号
链式赋值
name = lizhi
name1 = name
name2 = name1
直接用:name = name1 = name2 =lizhi
交叉赋值:将两个变量名的数字交换
l1 = 50
l2 = 500
直接用:l1, l2 = l2, l1
解压赋值:
l1 = 'lizhi', '18', 'red'
name, age, hobby = l1
- 逻辑运算符
关键字:and or
and意思是与,一起,表示前后的条件要全部一起符合,and的值取决左边符合取决于右边
or意思是或者,表示前后条件符合其中之一即可,or的值左边符合便取决于左边
- 成员运算符
表示是不是在这个数据里面 用in来表示
代码展示:
l1 = 'lizhi', 18, 'yellow'
l2 = 'zhanghong'
print(l2 in l1) 判断l2是不是l1中的数据
数据类型不同,判断不同:
字符串最小是一个字母,列表是一个数据值,字典只有键参与
- 身份运算符
关键字:is ==
is:用来判断两个变量的内存地址是不是一样
==:用来判断两个变量的数据值是不是一样、
一句话:
值相同,内存地址不一定相同
内存地址相同,值一定相同
小整数池:
为了节省内存资源,会把一些小整数放在同一个内存地址
- 垃圾回收机制
1.引用计数:计数为0会被清楚,不为0永远不会被清楚
2.标记清理:针对循环引用,会直接标记进行清楚
3.分代处理:针对数据使用频率,使用频率越高被检测的频率越低
流程控制
- 流程控制理论
针对事务流程执行的控制
分为3种:
顺序结构
分支结构
循环结构
- 分支结构
1.if 条件判断,如果这样执行,单分支结构
2.if elif 条件判断,如果这样,如果那样不这样,执行
3.if elif else 条件判断,如果这样,如果那样不这样,如果都不,执行
- while循环结构
就是想要一些代码反复的执行
1.关键字:while + 一个条件(如果条件成立就执行),一直到条件不成立才会结束循环
break 强制结束本次循环,一个break只能结束一个循环,多个循环需要多个break
continue 结束本次循环,再次回到条件判断处
else 循环没有被强制结束的情况下,结束循环会执行else
确定:可能会出现死循环
- for循环结构
结构:
for 变量名 in 待遍历数据 相当于把遍历的数据一个个打印出来临时绑定一个变量名
for循环的特点:
会自动结束,不会进入死循环
方便取值
break,continue,else跟while的用法一致
- for的range用法
内存产生一个含有多个数字的数据值
for i in range(0, 100) 取出从0开始,100结束,不包含100的数字
for i in range(0, 100, 2) 取出从0开始,100结束,等差为2的数字
数据类型内置方法
- 数据类型内置方法理论
每一个数据类型都有自身的内置功能,统一的句式.选择内置的功能
- 整型的内置方法
类型转换:int()
转换的对象:浮点型,只有整数的字符串
进制转化:
2进制:bin
8进制:oct
16进制:hex
- 浮点型的内置方法
类型转化:float(其他数据类型)
转换对象:整型,字符串里面只能有一个小数点
- 字符串的内置方法
l1 = 'hello word'
1.索引取值
print(l1[0]) # 默认从左往右
print(l1[-1]) # -1表示最最后一个数字检索
2.切片取值
print(l1[1:6]) # 索引1到6,不包含6
print(l1[-1:-5]) # 因为默认的是从左往右,所以直接不打印
print(l1[-5:-1]) # 从倒数第五个开始到倒是第一个,不包含倒数第一个
3.修改切片方向
print(l1[1:5:1]) # 默认间隔是1,也就是没有间隔
print(l1[1:5:2]) # 将间隔修改成2
print(l1[:]) # 没有内容表示全部的偶要
print(l1[-1:-5:-1]) # 修改方向为从右到左
4.字符串中的字符个数
print(len(l1))
5.移除字符串收尾指定的字符
l2 = input('请输入你的用户名>>>:').strip() # 关键字strip()表示删除最后面的空格
l2_s = '$$$li zhi$$$'
print(l2_s.strip('$'))
print(l2_s.lstrip('$')) # 删除左边的符号,关键字lstrip
print(l2_s.rstrip('$')) # 删除右边的符号,关键字lstrip
6.切割字符串中的指定字符
l3 = 'jason|18|yellow'
print(l3.split('|')) # 删掉数据串中的'|'
name, age, hobby = l3.split('|') # 可以使用解压赋值
print(l3.split('|', maxsplit=1)) # 删掉从左到右前1个符号
print(l3.split('|', maxsplit=3)) # 删掉从左到右前3个符号
print(l3.rsplit('|',maxsplit=1)) # 删掉从右到左的前1个符号
7.统一大小写,关键字upper统一大写,lower统一小写
l1 = 'Hello WOrd'
print(l1.upper()) # 处理为大写
print(l1.lower()) # 处理为小写
code = '9Km3KL'
print('展示给用户看的验证码', code)
confirm = input('请输入验证码')
if confirm.upper() == code.upper(): # 将输入的验证码和本来的验证码统一转成大写
print('验证码正确')
8.判断字符串是否是纯数字
l2 = 'hjljk'
print(l2.isdigit()) # 判断为False,不是纯数字
9.替换字符串中指定的内容
l3 = 'my name is jason jason jason jason '
print(l3.replace('jason', 'tony')) # 将jason换成tony
print(l3.replace('jason', 'tony', 1)) # 将第一个jason换成tony
l3.replace('jason', 'tony', 3) # 将前三个jason替换成tony
10.字符串的拼接
ll1 = 'hello'
lll2 = 'word'
print(ll1 + lll2)
print(ll1 + '|' + lll2) # 用加法相加
print('|'.join(['jason', '123', 'read', 'JDB'])) # jason|123|read|JDB 关:join
print('|'.join(['jason', 123])) # 参与拼接的数值必须都是字符串 关:join
11.统计指定字符出现的自述
l5 = 'hello word'
print(l5.count('h'))
12判断字符串的开头或结尾
l1 = 'jason say hello'
print(l1.startswith('j')) # 判断是不是j开头
print(l1.endswith('o')) # 判断o是不是结尾
12其他方法补充
print(l1.title()) # 首字母大写 Hello Word
print(l1.capitalize()) # Hello word 第一个字母大写
print(l1.swapcase()) # 相反的大小写 hEllO wORd
print(l1.index('D')) # 查看字母在第几个位置
print(l1.index('X')) # 找不到直接报错
print(l1.find('o')) # 查看字母在第几个位置
print(l1.find('x')) # 找不到默认回到-1
print(l1.find('He')) # 组合字母的位置
- 列表的内置方法
数据转换:list() 能被for循环都能转换
1.索引取值
2.切片操作
3.间隔方向
4.统计列表的数据值个数
print(len(l1))
5.数据值修改
l1[0] = 123 # 将l1索引0更换为123
6.列表添加数据
方式1尾部增加数据
l1 = [111, 222, 333, 444, 555, 666, 777, 888]
l1.append(123) # 尾部添加123.关键字append
print(l1)
方式2任意位置插入数据
l1.insert(1,123) # 在索引1的位置添加123.1表示索引位置,insert任意位置插入
print(l1)
方式3扩展列表
ll1 = [11, 22, 33]
ll2 = [44, 55, 66]
print(ll1 + ll2) # 加起来就相当于合并列表
print(ll1.extend(ll2)) # extend相当于把ll2中的数据for循环出来一个个放到ll1中
7.删除列表
方式一关键字:del
del ll1[1] # 删除索引1的数据值
方式二关键字:remove
ll1.remove(12) # 删除指定的数据值
方式三:pop
ll1.pop(0) # 括号里面也是索引值
8.排序
ss = [54, 99, 55, 76, 12, 43, 76, 88, 99, 100, 33]
ss.sort()
print(ss) # 默认是升序
ss.sort(reverse= True) # 修改为降序
print(ss)
9.列表中某个数据值出现的次数
ss.count(54)
10.将列表的顺序颠倒
ss.reverse()
-
字典的内置方法
类型转换 dict()字典一般都是自己手动转 user_dict = { 'username':'jason', 'passwodr':123, 'hobby':['read', 'music', 'run'] # } 1.按K取值 print(user_dict['username']) 2.get取值 print(user_dict.get('username')) 3.修改数据值 user_dict['username'] = 'tony' # 修改索引username的值改为tony 4.新增键值对 user_dict['age'] = 18 # 字典索引不存在的就会自动添加 5.删除键值对 del user_dict['username'] # 键跟值一起删除 user_dict.pop('username') # 键跟值一起删除 6.统计键值对个数 print(len(user_dict)) 7.字典三剑客 user_dict.keys() # 一次性取出所有键 user_dict.values() # 一次性取出所有的值 user_dict.items() # 一次性取出所有的键跟值 8.补充 l1 = dict.fromkeys(['jason', 'pwd', 'hobby'], []) # 快速生成字典,关键字fromkeys
-
元组的内置方法
类型转换:tuple() 支持for循环的数据都可以转成转成元组
l1 = (11, 22, 33, 44, 55, 66)
1.索引取值
print(l1[0])
2.切片操作
print(l1[1:5])
print(l1[:5])
print(l1[1:])
3.间隔长度
print(l1[1:5:2])
4.默认从左到位,用-1可以从右到左
print(l1[-1:-5:-1])
5.统计元组内的数据个数
print(len(l1))
6.查看某个数据出现的次数
print(l1.count())
7.查看某个数据的索引值
print(l1.index())
- 集合的内置方法
1.类型转换
set()
2.集合掌握的方法:去重和关系运算
3.去重
print直接打印就是去重
4.关系运算
l1 = {'jason', 'tony', 'jerry', 'oscar'}
l2 = {'jacd', 'jason', 'tom', 'tony'}
求两个人的共同好友
print(l1 & l2)
求用于1独有的好友
print(l1 - l2)
求两个人所有的好友
print(l1 | l2)
求两个人独有的好友
print(l1 ^ l2)
字符编码
字符编码只针对文本
万国码:unicode
utf系列:utf-8
标签:jason,回顾,python,基础知识,l2,l3,l1,print,dict
From: https://www.cnblogs.com/zhanghong1229/p/16756282.html