Python学习日记:六大数据类型之——字符串类型【详细】

Hello NanFeng

字符串是什么?

字符串是由字符组成的序列,属于有序的容器类型以及不可变数据类型。我们把形如以下形式的数据称为字符串。

str1 = 'hello nanfeng'
str2 = "你好 南风"
str3 = """hello 
nanfeng 你好
南风"""

可以看出,被符号

’ ’

" "

‘’’ ‘’’ 或 “”" “”"

包住的内容即为字符串。其中单双引号没有太大区别,当其中一者做为另一者的内容时,不会起创建字符串的作用。三引号可以让字符串实现跨行定义。

转义字符

python中同样存在一种这样特殊的字符——转义字符,以符号 \ 开头的组合字符,通常有特殊的含义,下面列出一些常用的转义字符

转义字符含义转义字符含义
\t横向制表符(相当于一个tab)\n换行
\r回车\f换页
\b退格\a响铃

r标记

在字符串的引号前加上标记 r ,可以使字符串内转义字符的特殊含义失效,使用原本的含义即原样输出,同样,额外的符号 \ 也可以起到相同的作用,但需要直接加在转义字符之前,例如\\t。

字符串取值

之前有总结过,字符串属于容器类型中的序列类型,故存在索引,可以利用索引取值

1. 下标取值法

str1 = "happy new year"
print(str1[2])

## 输出
p

2. 切片取值法

str1 = "happy new year"
print(str1[0:4])

## 输出
hap

字符串的方法与属性

字符串拥有许多特殊的方法和属性,下面列出一些我收集到的常用的一些

1. 判断类

方法功能方法功能
str.isdigit()是否只包含数字str.isnumeric()是否只包含数字(包括中文一到九等)
str.isalnum()是否只包含字母或数字str.isalpha()是否只包含字母
str.istitle()是否每个单词首字母大写,其他字母小写str.isupper()是否全为大写
str.islower()是否全为小写str.isspace()是否只包含空格(tab也算空格)
str.startswith(“str”, start,end)是否以某字符串开始(start与end可以指定搜索范围,默认可以不指定)str.endswith(“str”, start,end)是否以某字符串结束

2. 转换类

方法功能方法功能
str.upper()将字符串转换为大写str.lower()将字符串转换为小写
str.title()将字符串中的单词首字母大写,其他字母小写str.split(‘sep’)指定分隔符sep来把字符串拆成没有sep的一个个列表(sep默认空格)
‘str’.join(list)将列表内的元素用’str’拼接成一个字符串str.strip([string])去除字符串中首尾的字符串,不带参数默认去除空格

3. 统计类

方法功能
len(string)统计字符串的长度
str.count(‘str’ ,start ,end)统计字符串’str’在字符中出现的次数
str.index(‘str’ ,start ,end)统计字符串’str’在字符串中第一次出现的下标位置(注意没有会报错)
str.find(‘str’ ,start ,end)查找’str’,并返回它在字符串中第一次出现的下标位置(没有返回-1)

字符串的拼接与重复

之前在总结容器类型的这篇文章Python学习日记:数据结构——容器类型_Jarvi_Clarke的博客-CSDN博客中已经总结过了这一点,就不再赘述

特别的,如果字符串如此定义:

str1 = “蜜雪冰城” “甜蜜蜜”

即把两个字符串连着放着,python会自动把它们连接,这被称为级连字符串

字符串的格式化

format格式化

1.参数传递

name = "nanfeng"
age = 20
gender = 'male'
print("姓名:{},年龄:{},性别:{}".format(name, age, gender))
print("姓名:{0},{0},{0},年龄:{1},性别:{2}".format(name, age, gender))
print("姓名:{name1},年龄:{age1},性别:{gender1}".format(name1=name, age1=age, gender1=gender))

## 输出
姓名:nanfeng,年龄:20,性别:male
姓名:nanfeng,nanfeng,nanfeng,年龄:20,性别:male
姓名:nanfeng,年龄:20,性别:male

字符串中的字符串参数可以使用 {变量} 传入,上面展示的是三种传入参数的格式。

第一种是空花括号{} 按照顺序在后面的format里找参数

第二种是添加序列,仍然是0开始,按照序列在后面的format找参数

第三种是预先定义一个关键字,然后在后面的format中再做声明,声明先前定义的关键字该传哪个值。个人觉得这个挺多此一举的,可能是适用于代码、变量很多的情况下类似于注释一下,方便读代码吧。

2.填充输出
花括号里还可以指定许多参数来实现特殊的输出效果

语法: ‘{参数下标:[填充字符][对齐方式 <^>][标记][宽度][.数字][类型]}’.fomat(参数1,参数2…)

含义解释
[]里的是可选参数

1.填充字符
是用来指定填充的字符的,特别的,当填充字符为逗号 , 且参数为则行数或者浮点数时,会输出千分位格式的数字,例如:1,000,000

2.对齐方式
< 左对齐
> 右对齐
^ 居中对齐 (如果使用居中对齐那么宽度就必须指定)

3.标记
+ 正数前加正号,负数前加负号
- 正数前不加正号,负数前加负号
空格 正数前加空格,负数前加负号
# 显示二进制数、八进制数和十六进制数的前缀,分别是 0b、0o、0x,反之则不显示前缀。

4.宽度
指定输出时占用的宽度

5.数字
. 后面所接的数字是设定保留小数点后几位

6.类型
类型用来指定输出的数据类型,下面是一些常用的
f 浮点数
d 转换为十进制数再格式化输出
b 转换为二进制数再格式化输出
o 转换为八进制数再格式化输出
x或X 转换为十六进制数再格式化输出
% 显示百分比(默认是小数点后六位)
e或E 转换为科学计数法后,再格式化输出

由于参数众多,我就不一一举实例示范了,感兴趣的伙伴可以自己打开python3的环境试试

f格式化

f格式化所指的仍然是format,不过f格式化使用的形式和功能还是与format格式化有区别

语法: f"…{变量1}…{变量2}…{变量3}…"

含义解释
f 是f格式化的标记,要记住是在引号的外面

… 指代任意字符串内容

{变量} 花括号里的变量名是需要先前已经定义过的变量

示例:

goods = "芒果圣代"
print(f"你好,我要点一杯{goods}")

## 输出
你好,我要点一杯芒果圣代

f格式化是我最喜欢用的格式化输出方法,虽然功能没有format那么多,但是真的很简洁!

好的字符串就总结到这里了,有其他没涉及到的点也希望大家在评论区多多补充~

Hello NanFeng
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值