python基础(04字符串&字典)

python系列文章目录

python基础(01变量&数据类型&运算符)
python基础(02序列共性)
python基础(03列表和元组)



前言

python最简洁的基础,学完可上手自动化


一、字符串

1.特点

● 有序的
● 不可修改
● 引号包围的序列

2.定义

● 单引号
● 双引号
● 三个单引号或三个双引号

3.注意

● 单引号和双引号可以一起配合使用
● 转义字符\可以定义单引号
● 三引号和非三引号的区别:三引号可以定义带有换行的多行字符串,三引号通常还作为多行注释
● 引号里面的逗号、空格等都算一位

4.方法

(1)字符串格式化

1.%格式化

a='亲爱的%s,您的余额为%f,请充值'//%s 字符串。%f 浮点型 %d整数
b=('佳佳',0.01)
print(a % b)
------------------------------
name = 'xiaoming'
age = '10'
test = '%s is %s years old' % (name, age)
print(test)
----------------------------------------
字典格式也支持
test1 = 'Hello %(name)s,id=%(name)s' % {'id': 10, 'name': 'World'}
print(test1)

2.str.format()

常规用法:
a='亲爱的{},您的余额还剩余{},请充值
print(a.format('jiajia',10.00))//可传多不能传少,传少报错


位置访问:
name = 'xiaoming'
age = '10'
test2 = 'hello, {0}, you are{1}?'.format(name, age
print(test2)a

                                         
关键字访问:
name = 'xiaoming'
age = '10'
test3 = 'hello, {name}, you are {age}?'.format(name=name, age=age)
print(test3)

3.f格式化(常用)

name = 'xiaoming'
age = '10'
test4 = f'hi, {name}, are you {age}?'
print(test4)

(2)字符串的拼接:join

a=['1','b','c']
print(''.join(a))
print('*'.join(a))
------------------------>
1bc
1*b*c

1.连接列表成为字符串
2.产生新的字符串,返回值就是这个字符串

(3)字符串的切分

1.split():切分,可以指定切分次数和对象,默认空格切分

a="i am li jia jia"
print(a.split() )  #默认空格切分
print(a.split(' ',2))  #默认制表符切分2次
print(a.split('a')) #以a切分
print(a.split('j',2))  # j切分2次

---------------------------------->>
['i', 'am', 'li', 'jia', 'jia']
['i', 'am', 'li jia jia']
['i ', 'm li ji', ' ji', '']
['i am li ', 'ia ', 'ia']
--------------------------------->>
切分结果是列表

2.splitlines():行切分字符串
注意:以空格为切分符时,不能指定次数

name = 'xiaoming'
age = '10'
test4 = f'hi, {name}, are you {age}?'
print(test4)

(4)字符串的替换

1.replace()

1.从左到右替换指定的元素,可以指定替换的个数,默认是全部替换
2.指定替换个数多余 不报错

>>> a = 'hello boy'
>>> a.replace('o','a')
'hella bay'
>>> a.replace('o','a',1) #指定替换1个
'hella boy'

(5)字符串的查找

● count():计数功能,返回指定字符在字符串当中的个数
● find():查找,返回从左第⼀个指定字符的索引,找不到返回-1
● rfind():查找,返回从右第⼀个指定字符的索引,找不到返回-1
● index():查找,返回从左第⼀个指定字符的索引,找不到报错
● rindex():查找,返回从右第⼀个指定字符的索引,找不到报错

(6)字符串的修饰

● center():字符串在指定⻓度居中,默认以空格填充,也可指定字符填充,左短右⻓
● ljust():字符串在指定⻓度左对⻬,默认以空格填充,也可指定字符填充
● rjust():字符串在指定⻓度右对⻬,默认以空格填充,也可指定字符填充
● zfill():将字符串填充到指定的⻓度,不⾜地⽅⽤0从左开始补充
● format():按照顺序,将后⾯的参数传递给前⾯的⼤括号
● strip():默认去除两边的空格,去除内容可以指定
● lstrip():默认去除左边的空格,去除内容可以指定
● rstrip():默认去除右边的空格,去除内容可以指定

(7)字符串的大小写转

● upper():将字符串当中的所有字⺟转换为⼤写
● lower():将字符串当中的所有字⺟转换为⼩写
● swapcase():将字符串当中的所有字⺟⼤⼩写互换
● title():将字符串中的单词⾸字⺟⼤写,其他字⺟都⼩写(多个单词 多个大写)
● capitalize():将字符串的⾸字⺟⼤写(只有首字母大写,其余全部转化成小写)

(8)字符串的判定

● isalnum():判断字符串是否完全由数字和字⺟组成
● isalpha():判断字符串是否完全由字⺟组成
● isdigit():判断字符串是否完全由数字组成
● isupper():判断字符串是否完全是⼤写/只要字母为大写都true,不管是什么语言的字母
● islower():判断字符串是否完全是小写

判断字符串是否完全是小写
a='jiajia  123  佳佳'
print(a.islower())  #true  字符都为小写即可

● isspace():判断字符串是否完全由空格组成
● startswith():判断字符串的开头字符,可以截取判断/所有都可以以‘’开头 都为true
● endswith():判断字符串的结尾字符,可以截取判断/所有都可以以’'结尾 true

二、字典

1.特点

● 内置的数据结构
● 键值存储(key,value)

2.定义

(1)直接定义


{'zhang':'231','wang':'123'}

(2)dict()函数


>>> items = [('name','zhang'),('age',2)] #列表
>>> d = dict(items)   #字典
>>> d
{'age': 2, 'name': 'zhang'}

(3)dict()函数关键词定义


>>> d = dict(name ="zhang",age=2)
>>> d
{'age': 2, 'name': 'zhang'}

3.注意

● 值可以是任何的python对象,键不行,键不可变
● 如果同⼀个键被赋值两次,后⼀个值会被记住
● 键是不可变得,所以数字,字符串或元组可以作为键,⽽⽤列表就不⾏

4.操作

增:

(1)将值赋值到键上面,键不存在自动添加字典中

>>> phonebook['li'] = '888'
>>> phonebook
{'li': '888', 'wang': 666, 'zhang': '231'}

删:

(1)删除某个键

>>> del phonebook['wang']
>>> phonebook
{'zhang': '231''li': '888'}

(2)删除整个字典,删除后,变量也不存在了

>>> del phonebook
>>> phonebook
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
NameError: name 'phonebook' is not defined#报错,因为删掉后就不存在了,无法打印

改:

(1)将值赋值到键上,会更改原来的值

>>> phonebook['wang'] = 666
>>> phonebook
{'wang': 666, 'zhang': '231'}

查:

(1)len()

● 返回phonebook中键值对的数量

(2)a[‘键’]

● 返回键值
● 键不存在,报错

(3)检查字典中是否存在某个键

'wang' in phonebook
False
'zhang' in phonebook
True

5.字典格式化字符串

● 在每个转换说明符中的%后加上键(⽤括号),后⾯再跟上其他说明元素。
● 注意说明元素类型必须与 键所对应的值的类型⼀致,否则报错。例如:name是字符串,如果用%d,就会报错

方法一:
dic = {"name":"kunp", "balance":10}
s = "hello %(name)s, you balacne is %(balance)d" % dic


方法二:
s1 = f"hello {dic['name']}, you balacne is {dic['balance']}"
print(s)

6.方法

● clear():清除字典中的所有项,返回None
● copy():返回⼀个具有相同键-值的新字典
● deepcopy():from copy import deepcopy 和列表一致
● fromkeys():使⽤给定的键建⽴新的字典,每个键默认对应的值为 None,可以统一设置默认值,返回值是字典

result = {}.fromkeys(["name","age","gender"],"unknow")  #默认值为unknow
result = dict.fromkeys(["name","age","gender"],"unknow")
print(result)

● get():更宽松的访问字典项的⽅法,如果键不存在,返回None
● items():将字典所有项以列表⽅式返回 列表中每⼀项都会表示为(键,值)对的形式,py3中有次序,py3之前没有次序,可以用遍历,类型tuple元组

result  = dic.items()
for item in result:
    print(type(item), item)

keys(): 将字典中的键以列表形式返回,返回值是dict_keys和键,可进行循环遍历

result  = dic.keys()
print(list(result))#需要list转化

● pop():⽤来获得对应的键的值,并删除这对键值对,返回值是键的值
● popitem():删除最后一个键值对,返回值是被删除的键值对
● setdefault():类似于 get ,但对应的值不存在的时候,返回值none,可以指定赋值,返回值是键对应的值

result = dic.setdefault("gender", "M")
print(result,dic) 

● update():利⽤⼀个字典更新另外⼀个字典 ,被更新的字典 会加到 原字典中,键相同的话会被覆盖,返回值是none
● values():将字典中的键对应的值以列表的形式返回 ,返回值是dict_values和值, 可对其直接进行循环遍历


总结

理解即可

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值