7/29 Python.02

继续参考菜鸟教程

很多跟C相似的就不复述了


目录

5 运算符

6 数字 字符串 列表 元组 字典 集合

6.1 数字

6.2 字符串

6.3 列表

6.4 元组

6.5 字典

6.6 集合


5 运算符

'''赋值运算符'''
# :=海象运算符,表达式内部为变量赋值
'''位运算符'''
# &按位与    |按位或    ^按位异或    ~按位取反
# <<左移指定位数,高位丢弃低位补0    >>右移指定位数
'''逻辑运算符'''
# and or not 
'''成员运算符'''
# in    not in
'''身份运算符'''
# is    is not
# 类似于id(x)==id(y),id用于获取对象内存地址
# 但is判断变量的引用对象,==判断引用变量的值
a=[1,2,3]
b=a[:] #意思是把b的每个元素用a的元素赋值?
print(b is a,b==a)

'''运算符优先级'''
# 从高到低,每行同
# () [] {} 
# x[] x[:] x() x.y
# await x
# **
# +x -x ~x
# * @ / // %
# + -
# << >>
# &
# ^
# |
# in    not in    is not    < <= > >= != ==
# not x
# and
# or
# if--else
# lambda
# :=

输出:

False True

6 数字 字符串 列表 元组 字典 集合

6.1 数字

# 最后被输出的表达式结果赋值给变量_,为只读变量

'''数学函数'''
# abs() max(,,) min(,,) pow(,,) 
# round() 返回浮点数的四舍五入值,第二个数为精度不写为0
# 以下需要用math.调用
import math
# exp() fabs() log() log10() sqrt()
# ceil() 返回上入整数  floor() 返回下舍整数
# modf() 返回小数、整数部分,都为float
print(math.modf(3.3)) #返回(0.2999999999999998, 3.0)

'''随机数函数'''
# 用random.调用
import random 
# choice(seq) 从序列的元素中随机选一
# randrange() 从……随机选一
print(random.randrange(0,9,2))
# random() 随机float∈[0,1)
# seed() 种子,改变随机数生成器
random.seed()
print(random.random()) 
random.seed()
print(random.random()) #不同
random.seed(10)
print(random.random(),random.random()) #不同
random.seed(10)
print(random.random())
random.seed(10)
print(random.random()) #同并且与第二次print的第一个同
# shuffle(lst) 将序列的所有元素随机排序
# uniform(x,y) 随机float∈[x,y]

'''三角函数'''
import math
# cos() sin() tan()
# acos() asin() atan() atan2(y,x)这里y/x是斜率
print(math.atan(3/2),math.atan2(3,2)) #俩等的~
# hypot(,) 返回直角三角形斜边长float
print(math.hypot(3.000,4.000)) #无论int还是这样都返回5.0
# degrees() 弧度转角度  radians() 角度转弧度

'''数学常量'''
# pi e

6.2 字符串

'''转义字符'''
# \000 空
# \r 用后面替换开头
# \f 换页,终端看和\n没差,交互式窗口看和不加没差?
# \yyy 八进制  \xyy 十六进制

'''字符串格式化'''
#不想看了hh

'''f-string'''
s='bc'
print('a%s'%s,f'a{s}') #一样的~
dic={'a':'x','b':'y'}
print(f'{dic["a"]},{dic["b"]}') # 引号不能相同不然会歧义hhh
x=3
print(f'{x+3=}') #输出x+3=6


'''字符串内建函数'''
str='33'

# max() min()

#判断全是:
# isalnum()字母/数字 isalpha()字母/中文字 isdigit()数字
# isnumeric()数字可以是unicode如'\u00B2'(上标)'\u00BD'(分数)
# isdecimal()十进制字符
# islower() isupper() isspace() istitle()标题化

#转换:
# lower()  upper()  swapcase()大小写互换
# capitalize()字符串首字母大写 
print('4sdaf'.capitalize()) #首字符不是字母所以不变
# title() 每单词首字母大写
# replace(old,new,不超过次数)
# maketrans(被替代,替代,删去)变成table  translate(table,删去)
ss='dsffdsfsd'
print(ss.translate(ss.maketrans('d','t','f')))

#填充截去:
# join(seq) 将指定字符串填充进seq的元素间
# zfill(w) 右对齐左填0长度w
# center(w,s) 居中填充
print(str.center(7,'h')) #输出hhh33hh
# ljust() 左对齐填充,格式同上  rjust() 右8
# lstrip(s) 截去左边连续空格或指定字符  rstrip() 右  strip() 同时
# split(s,n) 输出列表,s处(默认空格)变成分割,最多分n次(默认-1即全部分)
# splitlines(True/False) 输出列表,'\r''\r\n''\n'后分割,选择是否保留
print('d\n\rf\rd\n'.splitlines(False)) #输出['d', '', 'f', 'd']把True的['d\n', '\r', 'f\r', 'd\n']里面转义符去掉了

#统计检查:
# len() 字符串长度、列表元素个数
# count() 统计字符串中出现次数
print('33sn433u33'.count(str,1,10)) #下标不写默认到末尾或者越界好像没有问题
# startswith() 检查是否以字符串开始,格式同上  endswith() 结束
# find() 检查是否包含字符串,格式同上  rfind() 从右边开始
# index() 同上,但不存在会报错  rindex() 从右边开始

#编码:
# encode(encoding:UTF-8 GBK等,errors:默认'strict'等) 编码
print(str_:=str.encode("UTF-8"))
# bytes.decode(同上) 解码
print(str_.decode('UTF-8','strict'))
# expendtabs() 改\t代表的空格数

6.3 列表

# del list[3]
# 嵌套列表 类似C的多维数组

'''列表比较'''
import operator
print(operator.eq([1,2],[2,1])) #是有序的

'''列表函数'''
# len() max() min
# list(seq) 将元组转换为列表


'''列表方法'''
l1=[1,2,3]

# copy() 类似a[:]返回复制后的新列表

#找:
# count(obj) 返回出现次数
# index(语法同字符串) 返回第一个匹配项的索引位置

#修改:
# clear() 清空,无返回值
# append() 在列表尾加元素,无返回值
print(l1.append('a')) #输出None
l2=l1.append('a')
print(l2,l1) #输出None [1, 2, 3, 'a', 'a']
# extend(seq) 同上,但seq可列表、元组、集合、字典
# insert(index,obj) 在索引位置插入对象,无返回值
# remove(obj) 移除第一个匹配项,无返回值
# pop(index) 移除一个元素(默认最后),返回该元素对象
print(l1.pop(),l1) #输出a [1, 2, 3, 'a']

#排序
# reverse() 反向排序元素,无返回值
# sort(key,reverse) 其中reserve==True降序/False升序(默认),无返回值
def f(e):
    return e[1]
r=[(1,2),(2,3),(3,1)]
r.sort(key=f,reverse=True) # key指定比较元素
print(r) #输出[(2, 3), (1, 2), (3, 1)]

6.4 元组

#多元素创建时也可以没有(),单元素不加,会认为括号为运算符
tup=('a',)
print(tup) #要没,输出a
#内容不能变但能对tup重新赋值
tup=1
print(tup) #换类型也可以
# del 删除整个元组

'''元组内置函数'''
# len()  max()  min()
# tuple() 将可迭代系列转换为元组

6.5 字典

# 键必须唯一,值不必
# 内建函数dict()返回空字典{}
# 可修改键对应的值,添加方式类似修改
# clear()清空为空字典,而del字典直接消除
# del 键

# 键重复出现,只记后一个值
# <A>所以昨天a,b=1,1.0  a和b值相等 为一个键
# 键必须不可变,可以数字、字符串、元组,若是变量一改变值就报错

'''字典内置函数'''
# len() str() type()
#发现要是前面有变量名重复就报错hhh

'''字典内置方法'''
dct={'a':1,'b':2,'c':3}

#修改:
# clear() 
# update(dic2) 添加,无返回值
# pop(key被删,val) key存在返回被删key对应的值 key不存在返回val(没有则报错)
# popitem() 删除最末煎键对,返回该键对的元组形式

#创建:
# copy()
# fromkeys(seq,val) 取键创建新字典,值默认None
seq=('a','b','c')
print(dct.fromkeys(seq,3)) #输出{'a': 3, 'b': 3, 'c': 3}

#找:
# get(key,val) 返回key值,若没有key返回val(默认None)
dd={'x':{'y':"hh"}}
print(dd.get('x',{}).get('y')) #关于嵌套字典
# setdefault(同上) 若没key则插入

#判断:
# key in dict

#返回视图对象
# items() 以列表返回视图对象
print(dct.items()) #输出dict_items([('a', 1), ('b', 2), ('c', 3)])
# keys() 返回key列表视图对象 values()
print(dct.keys()) #输出dict_keys(['a', 'b', 'c'])

6.6 集合

'''内置方法'''
#求:
# difference(y)差集- intersection(y)交集&(∩) union(y)并集|(∪)
# symmetric_difference(y)不同时存在^(∪-∩)

#判断:
# isdisjoint(y) 交集是否为空集
# issubset(y) 是否为y的子集
# issuperset(y) y是否为子集

#修改:
# clear()
# add(元素)  update(元素甚至列表元组字典等)
# difference_update(y) intersection_update(y) symmetric_difference_update(y)
# remove(元素) 若不存在报错  discard(元素) 不存在不报错
# pop() 随机删,返回被删的
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无名乙醛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值