周总结概要
- 基本数据类型
- python中的运算符
- 垃圾回收机制
- 流程控制
- 数据类型的内置方法
- 可变与不可变
- 字符编码及解码
周总结详细
基本数据类型
浮点型float
height = 1.8
查看数据类型用 type() 括号内即可以使数据值也可以是绑定了数据值的变量名
type(height) # <class 'float'>
整型int
age = 18
type(age) # <class 'int'>
字符串str
hobby = '学习'
type(hobby) # <class 'str'>
定义字符串有四种方式
hobby = '学习'
hobby = "学习"
hobby = '''学习'''
hobby = """学习"""
'''区分三引号是字符串还是注释只需要看左侧是否有赋值符号及变量名'''
列表list
name_list = ['mike', 11, 1.1, [1, 2]]
print(type(name_list)) # <class 'list'>
字典dict
info_dict = {
'username': 'mike',
'age': 18,
'hobby': 'read',
}
print(type(info_dict)) # <class 'dict'>
布尔值bool
True 对的 真的 可行的
False 错的 假的 不可行的
所有数据值都自带布尔值
布尔值为False的数据有:0 None '' [] {}
布尔值为True的数据有:除了上面的都是True
元祖tuple
t1 = (11, 22, '张三')
type(t1) # <class 'tuple'>
集合set
s1 = {1, 2, 3, 4, 5, 6}
type(s1) # <class 'set'>
注意区分字典和集合
大括号括起来 内部存放多个数据值 数据值与数据值之间逗号隔开 数据值不是key:value键值对
{} 默认是字典
set() 定义空集合
与用户交互
# 获取用户输入
username = input('请输入您的用户名>>>:')
"""
1.先执行input获取用户输入
2.将输入的数据绑定给变量名username
3.以后在程序中就可以使用变量名反复调用用户数据
"""
注意:input获取到的数据都会统一转换成字符串类型
# 输出内部信息
print()
1.括号内既可以放数据值也可以放变量名 并且支持多个 逗号隔开即可
2.print自带换行符
换行符:\r\n \n(斜杠与字母组合到一起可能会产生特殊的含义)
3.print也可以切换结束符
print(数据,end='默认是\n')
格式化输出
使用占位符%s # 常见数据类型都支持
%d # 只支持数字类型
'''单个占位符'''
print('%s同志你好' % '张三')
print('%s同志你好' % ('张三',))
# 输出结果
张三同志你好
'''多个占位符''' # 有几个占位符就需要几个数据值
desc = '姓名:%s 年龄:%s 爱好:%s'
print(desc % ('张三', 18, '学习'))
print('姓名:%s 年龄:%s 爱好:%s' % ('菜虚坤', 28, '唱跳rap'))
# 输出结果
姓名:张三 年龄:18 爱好:学习
姓名:菜虚坤 年龄:28 爱好:唱跳rap
python中的运算符
数学运算符
比较运算符
赋值符
'''链式赋值'''
name = name1 = name2 = 'jason'
'''交叉赋值语法'''
m = 100
n = 999
m, n = n, m
print(m, n)
#输出结果
999 100
'''解压赋值语法'''
name_list = ['张三', '李四', '王五', '赵六']
name1, name2, name3, name4 = name_list
逻辑运算符
'''and 与'''
and链接的多个条件必须全部成立 结果才成立
1 > 2 and 4 < 8 and 10 < 1 and 1 == 2 如果条件中全部由and组成那么判断起来非常的简单 只要发现一个不成立 结果就不成立
'''or 或'''
or连接的多个条件只要有一个成立 结果就成立
1 > 2 or 4 < 8 or 10 < 1 or 1 == 2 如果条件中全部由or组成那么判断起来非常的简单 只要发现一个成立 结果就成立
'''not 非'''
not取反 类似于说反话
print(not 1<10) # False
成员运算符
in 判断个体在不在群体内
name_list = ['张三', '李四', '王五']
print('赵六' in name_list) # False
print('张三' in name_list) # True
身份运算符
is 判断内存地址是否相同
== 判断数据值是否相同
'''id() 返回一段数字 该数字可以看成是内存地址'''
l1 = [11, 22, 33, 44, 55, 66, 77, 88]
l2 = [11, 22, 33, 44, 55, 66, 77, 88]
print(l1 == l2) # True
print(l1 is l2) # False
"""
值相同 内存地址可能不同
内存地址相同 值肯定相同
"""
垃圾回收机制
有一些语言 内存空间的申请和释放都需要程序员自己写代码才可以完成
但是python却不需要 通过垃圾回收机制自动管理
Python采用的是引用计数机制为主,标记清除和分代收集两种机制为辅的策略。
流程控制
顺序结构
从上往下依次执行 没学习之前所编写的都属于该结构
if分支结构
1.单if分支结构
# 格式
if 条件:
条件成立之后才会执行的代码块
# 实例
name = input('请输入您的姓名:')
if name == '张三':
print('你好')
2.if...else...分支结构
# 格式
if 条件:
条件成立之后执行的子代码
else:
条件不成立执行的子代码
# 实例
name = input('请输入您的姓名:')
if name == '张三':
print('张三你好')
else:
print('你不是张三')
3.if...elif...else分支结构
# 格式
if 条件1:
条件1成立之后执行的子代码
elif 条件2:
条件1不成立 条件2成立执行的子代码
elif 条件3:
条件1和2都不成立 条件3成立执行的子代码
else:
上述条件都不成立 执行的子代码
# 实例
score = input('请输入您的成绩:')
score = int(score) # input默认是字符串,通过int转换成整型
if score >= 90:
print('优秀')
elif score >= 80:
print('良好')
elif score >= 70:
print('一般')
elif score >= 60:
print('及格')
else:
print('挂科')
4.if的嵌套使用
# 格式
if 条件1:
条件1成立执行的代码
if条件2:
条件2成立执行的代码
else:
条件2不成立执行的代码
else:
条件1不成立执行的代码
# 实例
age = 18
money = 10
if age >=18:
print('成年了,可以去网吧')
if money >= 10:
print('有钱去网吧')
else:
print('钱不够,去不了网吧')
else:
print('未成年不能去网吧')
while循环结构
# 格式
while 条件:
条件成立之后执行的子代码(循环体代码)
# 执行流程
1.先判断条件是否成立
2.如果成立则执行循环体代码
3.循环体代码执行完毕后再次回到条件判断处 判断条件是否成立
4.如果成立 则继续执行循环体代码
5.按照上述规律依次执行 直到条件不成立才会结束循环体代码的执行
# 强制结束循环体
break 循环体代码一旦执行到break会直接结束循环
while 条件:
条件成立之后执行的子代码(循环体代码)
break # 直接结束循环 )
# 结束本次循环
continue 循环体代码一旦执行到continue会结束本次循环 开始下一次循环
while 条件:
条件成立之后执行的子代码(循环体代码)
continue
条件成立之后执行的子代码(循环体代码)
# 不常用的循环方法
while 条件:
循环体代码
else:
循环体代码没有被强制结束的情况下 执行完毕就会执行else子代码
for循环结构
for 变量名 in 待遍历的数据: # 遍历就是将每个数据单独取出
循环体代码
# 还有一种结构
for 变量名 in 待遍历数据:
循环体代码
else:
循环体代码没有被break强制结束的情况下运行结束后再运行的代码
# for循环中的break与continue
for循环体代码中如果执行到break也会直接结束整个for循环
for循环体代码中如果执行到continue也会结束当前循环直接开始下一次循环
数据类型内置方法
整型内置方法
1.类型转换 '''注意浮点型可以直接转,字符串转换成整型需要内部是纯数字'''
int(其他数据类型)
# 举例
print(int('11'))
print(int(11.11))
# 输出结果
11
11
2.进制数转换
十进制转换其他进制
print(bin(100)) # 转换成二进制 0b1100100
print(oct(100)) # 转换成八进制 0o144
print(hex(100)) # 转换成十六进制 0x64
'''数字的开头如果是0b则为二进制 0o则为八进制 0x则为十六进制'''
浮点型内置方法
类型转换
float(其他数据类型)
字符串内置方法
s1 = 'hello world'
1.类型转换
str(其他数据类型)
2.索引取值
索引取值起始位置从0开始,超出报错,并且支持负数
print(s1[o]) # h
3.切片
print(s1[0:3]) # hel 从索引0的位置开始切到索引2的位置 顾头不顾尾
print(s1[1:4:2]) # el 第三个参数不写默认为1改为负数倒着取
4.统计字符串中字符个数
len(字符串)
5.移除首尾指定的字符
.strip()
6.切割字符串中指定的字符
.split()
7.字符串格式化输出
.format
f'{数据}'
8.转换大小写与判断
.upper() # 转大写
.lower() # 转小写
.isupper() # 判断是否为大写
.islower() # 判断是否为小写
9.判断字符串是否是纯数字
.isdigit()
10.替换字符串中的指定内容
.replace()
11.字符串的拼接
.join()
12.统计指定字符出现的次数
.count()
13.判断字符串开头与结尾
.startwith() # 判断开头
.endswith() # 判断结尾
列表内置方法
l1 = [111, 222, 333, 444, 555, 666, 777, 888]
1.类型转换
list(其他数据类型)
2.索引取值
print(l1[0]) # 111
3.切片
与字符串的切片一致
print(l1[0:5]) # 顾头不顾尾 [111, 222, 333, 444, 555]
print(l1[:]) # 取所有 [111, 222, 333, 444, 555, 666, 777, 888]
print(l1[::-1]) # 倒着取 [888, 777, 666, 555, 444, 333, 222, 111]
4.统计列表中数据值的个数
len()
5.数据值修改
l1 = [111, 222, 333, 444, 555, 666, 777, 888]
l1[0] = 123
print(l1) # [123, 222, 333, 444, 555, 666, 777, 888]
6.列表添加数据值
.append() # 尾部追加数据
.insert() # 任意位置添加数据
.extend() # 合并列表数据
7.删除列表数据
del # 关键字删除指定数据
.remove()
.pop()
'''使用pop会返回删除数据的值 remove不会返回值'''
8.排序
.sort() # 默认升序
9.统计列表中某个数据值出现的次数
.count()
10.颠倒列表顺序
.reverse()
字典内置方法
user_dict = {
'username': 'jason',
'password': 123,
'hobby': ['read', 'music', 'run']
}
1.类型转换
dict(其他数据类型)
2.字典取值
print(user_dict['username']) # jason 按k取值,不存在报错
.get() # 当k不存在不会报错
3.修改数据及新增键值对
user_dict['username'] = 'tony' # 键存在则修改对应的值 不存在则新增
4.删除数据
del
.pop() # 会返回删除的数据值
5.统计字典中键值对的个数
len()
6.字典三剑客
print(user_dict.keys()) # 一次性获取字典所有的键 dict_keys(['username', 'password', 'hobby'])
print(user_dict.values()) # 一次性获取字典所有的值 dict_values(['jason', 123, ['read', 'music', 'run']])
print(user_dict.items()) # 一次性获取字典的键值对数据 dict_items([('username', 'jason'), ('password', 123), ('hobby', ['read', 'music', 'run'])])
元祖内置方法
t1 = (11, 22, 33, 44, 55, 66)
1.类型转换
tuple()
2.索引取值
print(t1[0]) # 11
3.切片
# 和其他类型数据切片的使用方法一样 也可以设置间隔以及取值方向
print(t1[1:3]) # (22, 33)
print(t1[::-1]) # 也可以倒着取值(66, 55, 44, 33, 22, 11)
4.统计元组内数据值的个数
len()
5.统计元组内某个数据值出现的次数
.count()
6.获取元祖内指定数据值的索引
.index() # 当有多个一样的值是只会返回第一次出现的索引值
集合内置方法
1.类型转换
set()
2.去重
s1 = {11, 22, 11, 22, 22, 11, 222, 11, 22, 33, 22}
l1 = [11, 22, 33, 22, 11, 22, 33, 22, 11, 22, 33, 22]
s1 = set(l1)
l1 = list(s1)
print(l1) # [33, 11, 22]
3.关系运算
用于做群体之间做差异化校验
f1 = {'jason', 'tony', 'jerry', 'oscar'} # 用户1的好友列表
f2 = {'jack', 'jason', 'tom', 'tony'} # 用户2的好友列表
# 两人的共同好友
print(f1 & f2) # {'jason', 'tony'}
# 用户1独有的好友
print(f1 - f2) # {'jerry', 'oscar'}
# 两人所有的好友
print(f1 | f2) # {'jason', 'jack', 'tom', 'tony', 'oscar', 'jerry'}
# 两个人各组独有的好友
print(f1 ^ f2) # {'oscar', 'tom', 'jack', 'jerry'}
# 父集 子集
print(f1 > f2) # 判断f1是不是f2的父集 False
print(f1 < f2) # 判断f2是不是f1的父集 False
字符编码
编码
字符串.encode()
解码
bytes类型数据.decode()
标签:总结,11,循环体,22,代码,第二周,print,数据
From: https://www.cnblogs.com/lzjjjj/p/16760431.html