python学习笔记(2)
字符串
字符串类型;
单引号和双引号:
strs = 'dsjkhd'
strss = "daskjdha"
或者单引号套双引号,反过来也行:
s = "I'm ok "
bool类型
True False
a = True
print(a==1)
#True
None 空类型:
''空字符串 ’ '空格字符串
n = None
print(n,type(n))
print(n == ' ')
print(type(''))
#None <class 'NoneType'>
#False
#<class 'str'>
复数类型:
complex:
fushu = 3 + 5j
print(fushu, type(fushu))
print(fushu.imag) #虚部
print(fushu.real) #实部
print(fushu.conjugate()) #共轭复数
#(3+5j) <class 'complex'>
#5.0
#3.0
#(3-5j)
bytes类型 :
#encode 编码
name = '赵信'
name_utf8 = name.encode("utf-8")#utf_8 是三位
name_gbk = name.encode("gbk") #gbk是两位
#decode 解码
print(name_utf8.decode("utf_8"))
格式化字符串
我们日常生活中经常会收到来自运营商的信息:
msg = "尊敬的xxx,您本月话费消费xx元,您的账户余额为xx元,打败了全国xx%的用户,如余额不足请及时缴费。xxxx年xx月xx日。"
name = "张三"
cost = 88.88
balance = 66.60
percent = 77.77
year = 2024
month = 3
day = 8
1.占位符 ;%d 整数 %s 字符串 %f 浮点型
msg_new = """尊敬的%s,您本月话费消费%.2f元,您的账户余额为%.2f元, # .2 代表取小数点后2位 以此类推
打败了全国%.2f%%的用户,如余额不足请及时缴费。%d年%02d月%02d日。"""
print(msg_new % (name, cost, balance, percent, year, month, day))
2.format方式:
msg_new = """尊敬的{},您本月话费消费{:.2f}元,您的账户余额为{:.2f}元,
打败了全国{:.2f}%的用户,如余额不足请及时缴费。{}年{:02d}月{:02d}日。"""
print(msg_new.format(name, cost, balance, percent, year, month, day))
注意要在{}中添加约束条件 一般在冒号后面添加,{: .2f}代表保留小数点后两位,f是浮点型。{: 02d} :整型,占两位数字不够的话补0。
也可以添加参数:
msg_new = """尊敬的{n},您本月话费消费{c:.2f}元,您的账户余额为{b:.2f}元,
打败了全国{p:.2f}%的用户,如余额不足请及时缴费。{y}年{m:02d}月{d:02d}日。"""
print(msg_new.format(n=name, c=cost, b=balance, d=day, p=percent, y=year, m=month))
3.f-string方法(后面常用):
msg_new = f"""尊敬的{name},您本月话费消费{cost:.2f}元,您的账户余额为{balance:.2f}元,
打败了全国{percent:.2f}%的用户,如余额不足请及时缴费。{year}年{month:02d}月{day:02d}日。"""
print(msg_new)
字符串方法
name = ' 亚索-盲僧-石头人 狐狸 妖姬 亚托克斯 发条 '
1.去除空格: strip() lstrip rstrip(去掉左边的,去掉右边的)
print(name)
print(name.strip()) #作比较
# 亚索-盲僧-石头人 狐狸 妖姬 亚托克斯 发条
#亚索-盲僧-石头人 狐狸 妖姬 亚托克斯 发条
2.replace 替换
print(name.replace('亚','鸭')) #old:亚 new:鸭
#鸭索-盲僧-石头人 狐狸 妖姬 鸭托克斯 发条
3.spilt 切分数据 默认切分空格:
import re
print(name.split('-', 1)) #以“-”切分
#[' 亚索', '盲僧-石头人 狐狸 妖姬 亚托克斯 发条 ']
print(re.split('[- ]+',name.strip())) # 以‘-’ 和空格切分
#['亚索', '盲僧', '石头人', '狐狸', '妖姬', '亚托克斯', '发条']
4.count 数字符的个数 索引的方式基本都是左闭右开 [)
print(name.count("亚", 0, 1)) #从0开始到1结束
#0 #不包含1的位置 所以没有
5.index 索引 查看字符串的索引 一般第一个
print(name.index("亚", 3)) #同样index也可以定义起始位置 这里定义从3开始
#17 #找到了第二个'亚'的位置
6.isdigit 判断字符串是否为数字(整数):
print("12a".isdigit())
#False
7.islower 判断字符串是否为小写字母:
print('abcA'.islower())
#False
8.isupper 判断字符串是否为大写字母:
print('Aa'.isupper())
#False
9.lower upper 大小写转换:
print("A".lower())
print("a".upper())
#a
#A
10.startwith 判断字符串以什么开头:
print(name.startswith("亚"))
# False
11.in \not in 检查一个子串是否在一个大字符串里:
print("亚" in name)
#True
12.字符串长度 : len()
print(len(name))
# 25
13.切片 [start:stop:step] start + step =>stop: step 默认为1
print(name[1:4]) # 从1开始 到4停止 (注意 不包括4)
print(name[::2]) # 步长改为2 每2步切一次
#亚索-
#索盲-头 狸妖 托斯发
14.字符串反转:
print(name[::-1]) #通过步长来进行反转
#条发 斯克托亚 姬妖 狸狐 人头石-僧盲-索亚
也可以通过这种方法来切片:
print(name[-3:-1])
print(name[-2:-4:-1])
#发条
#条发
print(name[3]) #通过这种方式 查找元素
#-