python学习笔记2
一、变量类型
2.1 数字
2.1.1 数字类型转换
语法 | 描述 |
---|---|
int(x) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(x) | 将x转换到一个复数,实数部分为 x,虚数部分为 0 |
complex(x,y) | 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y (x+yj) |
2.2.2 数字运算
差不多都一样,需要注意的是:在交互模式中,最后被输出的表达式结果被赋值给变量 _ 。
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
2.2.3 数学函数
函数 | 描述 |
---|---|
abs(x) | 返回数字的绝对值 |
max(x1,x2,…) | 返回给定参数的最大值,参数可以为序列 |
min(x1,x2,…) | 返回给定参数的最小值,参数可以为序列 |
ceil(x) | 返回数字的上入整数,进一保留,math.ceil(-3.1)=-3 |
floor(x) | 返回数字的下舍整数,去尾保留,math.floor(-3.1)=-4 |
exp(x) | 返回e的x次幂(ex),math.exp(1)=2.718281828459045 |
log(x) | 如math.log(math.e)返回1.0,math.log(100,10)返回2.0 |
log10(x) | 返回以10为基数的x的对数,如math.log10(100)返回 2.0 |
round(x [,n]) | 返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。 |
注意:
1、log跟的数字代表底数
2、自然常数e的调用,math.e
3、除前三个函数,其他函数调用前加math.
4、round(2.13733,2)=2.14
5、记得import math
2.2.4 随机数函数
函数 | 描述 |
---|---|
choice(seq) | 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 |
randrange ([start,] stop [,step]) | 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1 |
random() | 随机生成下一个实数,它在[0,1)范围内。 |
seed([x]) | 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。 |
shuffle(lst) | 将序列的所有元素随机排序 |
uniform(x, y) | 随机生成下一个实数,它在[x,y]范围内。 |
注意:
1、使用之前先import random
2、调用前加上random.
2.2.5 三角函数
该咋写咋写,没啥特别的
2.2 字符串
2.2.1 字符串运算符
a = "Hello"
b = "Python"
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])
if( "H" in a) :
print("H 在变量 a 中")
else :
print("H 不在变量 a 中")
if( "M" not in a) :
print("M 不在变量 a 中")
else :
print("M 在变量 a 中")
print (r'\n')
print (R'\n')
输出结果:
a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
H 在变量 a 中
M 不在变量 a 中
\n
\n
注意:
1、+:字符串连接
2、*:字符串重复
3、切片a[1:4],左闭右开
4、r/R:保留字面意思
2.2.2 三引号
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
str='''1 看第四行
2 看第三行\n
4 看第二行
5 你看了啥
6 \t寂寞
'''
print(str)
输出结果:
1 看第四行
2 看第三行
4 看第二行
5 你看了啥
6 寂寞
2.2.4 f-string
f-string 是新的格式化字符串的语法。
f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:
name='python'
print(f'Hello {name}!')
print(f'{name[0]}+{name[-1]}')
print(f'{1+1}')
print(f'{1+1=}')
输出结果:
Hello python!
p+n
2
1+1=2
2.3 列表
2.3.1 访问列表中的值
list=['pizza','pasta','hotpot','BBQ']
print('I want '+list[0]+' desperately!!!')#读取列表第一个
print('I want '+list[-1]+' desperately!!!')#读取列表最后一个
print(list[1:])#从第二个读到最后一个
print(list[1:3])#即list[1]\list[2],从第二个读到第三个,左闭右开
输出结果:
I want pizza desperately!!!
I want BBQ desperately!!!
['pasta', 'hotpot', 'BBQ']
['pasta', 'hotpot']
注意:切片读取时左闭右开
2.3.2 嵌套列表
hotpot=['beef','potato',"pork"]
western=['salad','steak']
food=[hotpot,western]
print(food)
print(food[0][0])
输出结果:
[['beef', 'potato', 'pork'], ['salad', 'steak']]
beef
2.3.3 修改列表
western=['salad','steak']
food=['beef','potato',"pork"]
western.append('pasta')#append一个元素
print('append后的列表:',western)
del western[0]#删除一个元素
print('del后的列表:',western)
food.extend(western)#extend一个序列
print('extend后的列表:',food)
food.insert(-1,'beef') #在指定位置之前插入
print('insert后的列表:',food)
print('beef出现的次数:',food.count('beef'))
food_pop=food.pop(1)#参数为删除元素的索引
print('pop的元素是:',food_pop)
print('pop后的列表:',food)
food.remove('pork')#参数为元素名字
print('remove后的列表:',food)
food.reverse()
print('reverse后的列表:',food)
food.sort(reverse=True)#降序排列
print('sort后的列表:',food)
输出结果:
append后的列表: ['salad', 'steak', 'pasta']
del后的列表: ['steak', 'pasta']
extend后的列表: ['beef', 'potato', 'pork', 'steak', 'pasta']
insert后的列表: ['beef', 'potato', 'pork', 'steak', 'beef', 'pasta']
beef出现的次数: 2
pop的元素是: potato
pop后的列表: ['beef', 'pork', 'steak', 'beef', 'pasta']
remove后的列表: ['beef', 'steak', 'beef', 'pasta']
reverse后的列表: ['pasta', 'beef', 'steak', 'beef']
sort后的列表: ['steak', 'pasta', 'beef', 'beef']
注意:
1、append和extend区别在于,前者添加一个元素,后者添加一个序列
2、insert函数是在指定的位置之前插入元素
3、pop可以返回元素,remove和del不返回
2.4 元组
1、Python 的元组与列表类似,不同之处在于元组的元素不能修改。
2、元组使用小括号,列表使用方括号。
3、元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
2.5 字典
2.5.1 访问字典
dict={'name':'hhh','age':3,'level':'first'}
print('字典如下:')
for key in dict:
print(key,":",dict[key])
输出结果:
字典如下:
name : hhh
age : 3
level : first
2.5.2 修改字典
dict={'name':'hhh','age':3,'level':'first'}
del dict['age']
print('del之后的dict:',dict)
dict.clear()#清空字典
dict['school']='scut'
print('清空又插入之后的dict:',dict)
del dict#删除字典
输出结果
del之后的dict: {'name': 'hhh', 'level': 'first'}
清空插入之后的dict: {'school': 'scut'
2.5.3 字典键的特性
1、不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住
2、键必须不可变,所以可以用数字,字符串或元组充当
2.6 集合
1、集合(set)是一个无序的不重复元素序列。
2、可以使用大括号 { } 或者 set() 函数创建集合。注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
2.6.1 创建格式
animal={'pig','cow','kitty','puppy','rabbit','pig','dog','zebra'}
print(animal)#去重输出
x=set('aaabbbccciu')#set()不能像animal那样定义
y=set('abcpcy')
z={i for i in x if i not in 'abc'} #可以用推导式!
print(z)
输出结果:
{'dog', 'kitty', 'rabbit', 'zebra', 'pig', 'cow', 'puppy'}
{'u', 'i'}
注意:直接输出集合是去重的
2.6.2 集合的基本操作
二、运算符
1、算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 | |
- | 减 | |
* | 乘 | |
/ | 除 | 10/3=3.3333…… |
% | 取模,取余数 | 10%3=1 |
** | 幂 | 2**3=2^3=8 |
// | 取整数,向下取整 | -10/3=-4 、 10//3=3 |
2、比较运算符&赋值运算符
比较运算符:==、!=、<=、>=、>、<
赋值运算符:a+=c的意思就是a=a+c,其他类似
3、位运算符
按位运算符是把数字看作二进制来进行计算的
运算符 | 描述 |
---|---|
& | 按位与,同为1取1否则取0 |
| | 按位或,同为0取0否则取1 |
^ | 按位异或,两个相异取1 |
~ | 按位取反,0变1,1变0 |
<< | 左移运算符,高位丢弃,低位补0 |
>> | 右移运算符 |
4、逻辑运算符
运算符 | 逻辑表达 | 描述 |
---|---|---|
and | x and y | 与,x为False返回False否则返回y |
or | x or y | 或,x非0返回x否则返回y |
not | not x | 非 |
注:先看运算符左边的标识符。
5、成员运算符
in、not in:在指定序列中查找
6、身份运算符
is、is not:判断两个标识符是否引自同一对象
is 与 ==的区别:
== 用于判断引用变量的值是否相等。is用来判断两者存储空间一致。
三、if语句
if python==unhappy:
print(':(')
elif python==happy:
print(':)')
else:
print('=.=')
需要非常注意:(1)缩进 (2)if、elif、else后都需要加冒号