Python 学习笔记05 - 字符串

str 字符串

  • str
  • 转义字符
  • 格式化
  • 内建函数

字符串

  • 表示文字信息
  • 用单引号,双引号,三引号括起来
s = 'Hello world'
print(s)

Hello world
s = "Hello -World"
print(s)

Hello world
s = """  
    I
    Like
    dog
"""
print(s)

  I
    Like
    dog

转义字符

  • 用一个特殊的方法表示出一系列不方便写出的内容,比如 回车键,换行符,退格键
  • 借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面的一个或者几个字符表示已经不是原来的意思了,进行了转义
  • 在字符串中,一旦出现反斜杠就要加倍小心,可能由转义字符出现
  • 不同系统对换行操作有不同的表示
    • windows: \n
    • Linux: \r\n
# 转义字符的案例
# 想表达Lets' Go
# 使用转义字符
s = 'Let\'s Go'
print(s)

# 使用单双引号嵌套
s = "Let's Go"
print(s)


# 表示斜杠
# 比如表示C:\User\Augsnano
s = "c:\\User\\Augsnano"
print(s)

# 回车换行 \r, \n
s = " I \n love \n cat"
print(s)

Let's Go
Let's Go
c:\User\Augsnano
 I 
 love 
 cat

常用的转义字符

    转义字符    描述
    \ (在行尾时) 续行符 
    \\ 反斜杠符号
    \' 单引号
    \" 双引号
    \a 响铃
    \b 退格
    \e 转义
    \000 空
    \n 换行
    \v 纵向制表符
    \t 横向制表符
    \r 回车
    \f 换页
    \oyy 八进制数,yy代表的字符,例如: \o12代表换行
    \xyy 十六进制数,yy代表的字符,例如: \x0a 代表换行
    \other 其他的字符以普通格式输出
# 耽搁斜杠的用法
# 在python里,耽搁反斜杠表示此行未结束,出于美观,需要下一行继续
# 理论上应该写成 def myDemo(x,y,z):
def myDemo(x, \
           y, \
           z):
    print("yihhah")
    
myDemo(1,2,3)

yihhah

格式化

  • 把字符串按照一定格式进行打印或者填充
  • 格式化的分类
    • 传统格式化

      • 使用%进行格式化

      • %(百分号)也叫占位符

        %d: 十进制整数
        %u: 无符号整数
        %o: 表示八进制
        %x:十六进制,字母为小写(x为小写)
        %X:十六进制,字母为大写(X为大写)
        %e:浮点数(E为小写),例如2.87e+12
        %E:浮点数(E为大写),例如2.87E+12
        %f,%F:浮点数十进制形式
        %g,%G:十进制形式浮点或者指数浮点自动转换
        格式字符前出现整数表示此占位浮所占位置的宽度
        格式字符前出现‘-’表示左对齐
        格式字符串出现‘+’表示右对齐
        0位数不足用‘0’补齐
        width 表示宽度
        pricision 精度

    • format

      • 使用函数形式进行格式化,代替以前的百分号
# %s,表示简单字符串
# 占位符可以单独使用
# 占位符一般只能被同类型转换,或者替换类型能被转换成占位符看。
s = '我喜欢 %s'
print(s)
print(s%'猫')

a = '我喜欢 %sMao 和 %sHuiguo'
# 如果需要格式化的信息多余一个,则可用括号括起来就可以
print(a%("猫", "苹果"))

# 实际需要进行格式化的信息的数量必须与百分号后面给出的数据量匹配,否则报错
# 如下例子,实际需要格式化的为4处,但是给出三个数据,则报错
b = "I am %.2f KG,你有 %.2f m怎么会"
print(b%(25.65,63.22))

我喜欢 %s
我喜欢 猫
我喜欢 猫Mao 和 苹果Huiguo
I am 25.65 KG,你有 63.22 m怎么会
# 不用指定位置,按顺序读取
s = "{}  {}"
print(s.format("Hello", "world"))

a = "{}  {}!".format("Hello", "world")
print(a)


# 设定指定位置
a = "{1}  {1}!".format("Hello", "world")
print(a)

b = "{1}  {0}!".format("Hello", "world")
print(b)

# 使用命名参数
s = "我们是{school_name}, 我们的网址是{url}, {teacher}最帅"
s = s.format(school_name="北京tuling学院",url="www.baidu.com",teacher="摸猴子")
print(s)

Hello  world
Hello  world!
world  world!
world  Hello!
我们是北京tuling学院, 我们的网址是www.baidu.com, 摸猴子最帅
# 通过字典设置参数,需要解包
# 使用命名参数
s = "我们是{school_name}, 我们的网址是{url}, {teacher}最帅"
s_dict = {"school_name":"北京图灵学院",\
          "url":"www.baidu.com",\
          "teacher":"大白"}
# **是解包操作
s = s.format(**s_dict)
print(s)

我们是北京图灵学院, 我们的网址是www.baidu.com, 大白最帅
# 对数字的格式化需要用到
s = "学学数学知识 {:.2f}m heigh,{:.2f}Kg weight"
print(s.format(1.84,2.36))


# `,<,> 分别是居中,左对齐,右对齐,后面带宽度,
#: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
# + 号表示正数前显示+,负数前显示-,空格表示正整数前加空格
# b/d/o/x 分别是二进制,十进制,八进制,十六进制。
# 此外我们可以使用大括号{} 来转义大括号

我们是北京图灵学院, 我们的网址是www.baidu.com, 大白最帅
# 对数字的格式化需要用到
s = "学学数学知识 {:.2f}m heigh,{:.2f}Kg weight"
print(s.format(1.84,2.36))


# `,<,> 分别是居中,左对齐,右对齐,后面带宽度,
#: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
# + 号表示正数前显示+,负数前显示-,空格表示正整数前加空格
# b/d/o/x 分别是二进制,十进制,八进制,十六进制。
# 此外我们可以使用大括号{} 来转义大括号

# 对数字的格式化需要用到
s = "学学数学知识 {:.2f}m heigh,{:.2f}Kg weight"
print(s.format(1.84,2.36))


# `,<,> 分别是居中,左对齐,右对齐,后面带宽度,
#: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
# + 号表示正数前显示+,负数前显示-,空格表示正整数前加空格
# b/d/o/x 分别是二进制,十进制,八进制,十六进制。
# 此外我们可以使用大括号{} 来转义大括号
# 对数字的格式化需要用到
s = "学学数学知识 {:.2f}m heigh,{:.2f}Kg weight"
print(s.format(1.84,2.36))
​
​
# `,<,> 分别是居中,左对齐,右对齐,后面带宽度,
#: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充。
# + 号表示正数前显示+,负数前显示-,空格表示正整数前加空格
# b/d/o/x 分别是二进制,十进制,八进制,十六进制。
# 此外我们可以使用大括号{} 来转义大括号
学学数学知识 1.84m heigh,2.36Kg weight

str 内置函数

  • 很多语言字符串使用string表示,但是python中用str表示字符串
s = "hello"

# 返回第一次发现这个字符串的位置
s1 = "el"
n = s.find(s1)
print(n)

# 返回-1 表示没有找到
s2 = 'cc'
n = s.find(s2)
print(n)

# 把首字母变为大写
n = s.capitalize()
print(n)

# a = center(s,10,'aaa')
# print(a)

1
-1
Hello

判断类函数

  • 此函数的特点是一般都用is开头,比如: islower

  • isalpha: 判断是否是字母,需要注意两点:

    • 此函数默认的前提是字符串至少包含一个字符,如果没有,同样返回False。
    • 汉字被认为是alpha,所以,此函数不能作为区分英语字母还是汉字的标识,区分中英文请使用unicode
    • 注意使用区别,防止被坑
  • isdigit、isnumeric,isdecimal 三个哦按段式子的函数

    • 此类函数不建议使用,在后期爬虫中,判断是否是数字建议采用正则表达式个表示

      对着三个函数的一个总结就是:
      digit:
      True:Unicode,byte,全角数字,罗马数字,
      False:hanzi shuxue

  • islower: 判断是否是大写或者小号

chin_num = "一二三层四五"

print(chin_num.isdigit())
print(chin_num.isnumeric())
print(chin_num.isdecimal())

False
False
False

内容判断类

  • startswith/endwith:是否以XXX开头或结尾
    • 检测某个字符串是否以某个字符串开头,常用三个参数
    • suffi: 被检查的字符串,必须有
    • start: 检查的开始范围
    • end: 检查的结束泛微
i = 'I'
d = 'hello cat'
x = 'dingdang miao'
s = 'I really like hello cat'

print(s.startswith(i))
print(s.startswith(d)) c
print(s.endswith(x))

True
False
False

操作类函数

  • format:格式化用
  • strip: 这个函数只要作用是删除字符串两边的空格,其实这个函数允许你去定义删除字符串两边的那个字符,只不过如果不指定的话默认是空格,同样还有lstrip和rstrip,此处l和r分别表示左右边,即删除字符串左边或者右边制定字符,默认空格,需要注意的事,此处的删除不是删除一个,是指从头开始符合条件的连续字符
  • 相似的函数还有lstript,rstrip
  • join
s = "hello cat   "
print(s.strip())
print(s.strip('h'))

hello cat
ello cat  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值