第一天
1.编写python文件,称为python程序脚本
- #开头的作用:说明、解释、调试
- print作为输出函数,可以在程序中输出一些字符
- 函数就是为了完成一些功能
- 字母、数字、下划线,数字不能作为开头。
第二天:数据交换
- python特殊特性,交换a,b:
a,b = b,a
print(a,b)
第三天:字符类型
1.字符串类型:输出print(a,b,c)
- 换行输出:
print(a)
print(b)
print(c)
三行输出
2.type()函数 返回一个数据类型或者变量的数据类型结果
res = type(love) #<class 'str'> str = string字符串
3.大字符串:三引号
s = '''很好比如说你很好我也很好'''
s = '''很好比如说
你很好我也很好''' #可以换行
4.单、双和三引号可以相互嵌套,但是不能自己嵌套自己。
单双引号定义的字符串不能随意换行,需要换行时指明换行符
s = '''床前明月光,疑是"地上"霜,举头望'明'月,低头思故乡'''
5.转义字符:\n表示换行,\t表示一个制表符
s = '窗前\n明月光'
s = r'床前\n明月光' #前面加r可使转义字符失效
6.数字类型number
#整型int
varn1 = 251
varn2 = -5555
#浮点型float
varn3 = 3.1415926
#十六进制
varn4 = 0x10
#二进制bytes
varn5 = b'01111000022'
# 复数
varn6 = 5+6j #complex复数类型
#布尔类型
varn7 = True #bool类型
varn8 = False
print(varn8,type(varn8)) #打印布尔类型
第四天
1.记录一组数据用列表,用中括号定义,并且每个数据之间用英文逗号隔开
#列表中存储的数据可以是任意类型的数据
varlist = [12,34,221,45,'sa',"3.1415926"]
#可以通过下标的方式获取
#下标对应 0 1 2 3 4 5
#varlist = [12, 34, 221, 45, 'sa', "3.1415926"]
# -6 -5 -4 -3 -2 -1
print(varlist,type(varlist))
print(varlist[0])
print(varlist[-6])
#列表中也可以存储一个列表,称为二级列表,或者多维列表
#标号 0 1 2 3 4 5 6
varlist1 = [12, 34, 221, [1,3,2,5], 45, 'sa', "3.1415926"]
# 标号 0 1 2 3
# [1,3,2,5]
print(varlist1[3][1]) #打印列表中列表的一个元素
2.元组使用()定义,列表使用[]定义
#tuple元组类型
vart = (1,2,3,4,'a',"ddddaa")
print(vart,type(vart))
#元组只有一个元素时,需要在元素之后加一个逗号,不然会报错,或者不是元组了。
vart1 = (123)
print(vart1,type(vart1)) #输出int类型,或者输出其他类型,不是元组类型
vart1 = (123,)
print(vart1, type(vart1)) #输出tuple类型
#元组的其他定义方式
vart2 = 1,2,3 #变量与元素不对应,变为元组
print(vart2,type(vart2))
##元组和列表的区别
+元组用小括号定义,列表用中括号定义
+列表中的值是可以改变的,元组中的值不可以改变
+元组和列表都是存储多个数据时使用
第五天:Dict字典类型
- 字典可以存储一组或多组数据时使用,使用大括号{}来定义
- 字典是 键值对 的存储方式 name : admin
- 键和值之间用冒号进行隔离,多组键值对用逗号进行分隔开
- 键必须是字符串或数字类型,值可以是任意类型
- 键名不能重复(否则会覆盖先定义的值),值可以重复
- 在之前的python版本中,字典中的键是无序的
比如需要记录一本书的相关数据 书名、作者、价格…
vard = {'title':'《鬼谷子》','author':'鬼谷子','price':'46.7$'}
print(vard,type(vard))
# {'title': '《鬼谷子》', 'author': '鬼谷子', 'price': '46.7$'} <class 'dict'>
#获取字典中的值,按键获取
print(vard['title'])
print(vard['author'])
第六天:set集合类型
1.set集合是一个 无序且元素不重复的 集合的数据类型
2.set集合使用 大括号或者set()方法来定义
3.集合的定义方式
vars = {1,2,3,'a','b',1}
vars = set('123456') #输出是无序的
print(vars)
如果需要定义一个空集合时 只能使用 set()方法,因为使用大括号时定义的是字典
vars = {} #<class 'dict'输出是字典
vars = set()
print(vars,type(vars)) #<class 'set'>输出是集合类型
集合类型主要用于运算,交集、差集、并集和对称集合
a = {1,2,3,'a','er'}
b = {1,'a',22,444}
print(a & b)#交集
print(a | b)#并集
print(a - b)#差集
print(a ^ b)#对称集合
第七天:数据类型转换
字符串 string
数字类型 Number
整型 int
浮点型 float
复数
布尔 bool
列表 list
元组 tuple
字典 dict
集合 set
可变数据类型:列表、字典、集合
不可变数据类型:字符串、数字,元组
容器类型数据:字符串、列表、元组、集合、字典
非容器类数据:数字、布尔类型
#数据类型转换:把一个数据类型转化为另一种数据类型转换,
#原因:不同的数据类型不能进行计算
# 一、自动数据类型转换
#转换顺序,结果向更高精度转换: True ==> 整型 ==> 浮点 ==> 复数
a = 123
b = True
print(a+b)
print(12.5+22)
print(True+12.34)
**if语句**
if a:
print('真')
else:
print('假')
# 二、强制数据类型转换
'''下面的函数,可以把其他类型的数据,转换为对应的数据类型
str()
int()
float()
bool()
list()
tuple()
dict()
set()
'''
# c = 123
# c = 'love'
# c = 3.14
# c = True
# c = [1,2,3]
# c = (22,33)
c = {22,33}
# c = {'a':1,'b':2}
# 可以把所有的其他类型转换为字符串类型
print(c,type(c))
res = str(c) #不是所有类型都能转换
print(res, type(res))
#字符串转数字类型时,如果字符串中时纯数字,可以转换
#其他容器类型不能转换为数字int类型一样,不过转换的结果是浮点类型
#bool可以把其他类型转换布尔类型的TRUE或者Flase
#需要总结,哪些情况转bool的结果是Flase
''空字符串
‘0’True
0
0.0
False
[]
{}
set()
第八天:容器类型转换
#list 列表
'''
字符串 转换为列表时 会把字符串中的每一个字符当做列表的元素
数字类型是 非容器类型,不能转换为列表
集合 可以转换为 list列表类型
元组 可以转换为 list列表类型
字典 可以转换为 list列表类型,但只能保留字典中的键
'''
n = '123'
res = list(n)
print(n,type(n),res,type(res))
#tuple元组
# 数字类型,非容器类型不能转换为元组
# 其他容器转换为tuple元组时,和list列表一样
n = '123'
res = tuple(n)
print(n, type(n), res, type(res))
#set集合
# 数字类型不能转换为集合
# 字符串、列表、元组 可以转换为集合,结果是无序的
#字典转换为集合时,只保留了键key
n = 'acfg'
res = set(n)
print(n, type(n), res, type(res))
#dict字典
# 数字类型,非容器类型不能转换为字典
# 字符串不能转换为字典
# 列表要求是一个二级列表,并且每个二级元素只能有两个值
# 元组要求是一个二级元组,并且每个二级元素只能有两个值
n = [['s','w'],[5,7]]
# n = ((1,2),(3,4))
res = dict(n)
print(n, type(n), res, type(res))
第九天:运算符:算、字、赋、比、逻、位、
#一、算术运算符 + - * / ** // %
a = -9
b = 2
print(a + b)
print(a - b)
print(a * b)
print(a / b)
print(a ** b)
print(a // b) #结果取整
print(a % b)
#二、字符串运算
# 1.字符串和数字不能直接运算
# 2.两个字符串相加,是字符串拼接
l = 'love'
i = 'i ' + l + ' you'
# i = f'i {l} you'
# i = 'i {} you'.format(l)
# i = 'i {l} you'.format(l=l)
print(i)
# 3.字符串如果和数字 使用* 那么就是重复前面的字符串
print('1'+'1')
#三、赋值运算符:= += -= *= /= %= **= //= (c=c+10)
g = 10
g += 20
print(g)
#四、比较运算符
a = 10
b = 20
# print(a == b)
# print(a != b)
# print(a >= b)
# print(a <= b)
#五、逻辑运算符:and or not
a = False
b = True
# print(a and b)
# print(40 and 30) #都是真,则返回后面一个值
# print(0 and 20) #返回假
# print(a or b)
print(30 or 20) #都为真时,返回前面第一个值
print(not a )
print(not b)
#六、二进制与位运算
#1.十进制 转为 二进制
a = 125
#bin()函数 可以转换为二进制
# print(bin(125)) #转换为二进制
# print(bin(99990907))
#2.二进制 转换为 十进制
#按权展开求和
'''
0b 0101 1011
'''
# int()函数将会把任意数转换为十进制数
# print(int(0b00101011))
# & 按位 与 运算:参与运算的两个值,如果两个相应的二进制为都为1,则按位与的结果都为1,否则都为0
a = 0b11010001
b = 0b10011101
print(bin(a & b))
# | 按位 或 运算
print(bin(a | b))
# ^ 按位 异或 运算:当两个对应的二进制相异时,结果为1
print(bin(a | b))
# 左移运算符:运算的若干位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0
print(bin(a << 2))
# 右移运算符:运算的若干位全部右移若干位,由“>>”左边的数指定移动的位数,低位丢弃,高位补0
print(bin(a >> 2))