python基础:第一章:字符串(二)

二、字符串

2.1 基本性质

  • Python中的字符串用单引号 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
  • python中单引号和双引号使用完全相同。
  • 反斜杠 \ 可用来转义,使用r可以让反斜杠不发生转义。如 r"this is a line with \n" 则\n会显示,并不是换行。
  • 按字面意义级联字符串,如"this " "is " "string"会被自动转换为this is string。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • Python中的字符串不能改变。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
  • 字符串的截取的语法格式如下:变量[头下标:尾下标:步长]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H6qHHvlS-1597582987783)(../images/o99aU.png)]

str = 'Runoob'

print (str)          # 结果:Runoob
print (str[0:-1])    # 结果:Runoob
print (str[0])       # 结果:R
print (str[2:5])     # 结果:noo
print (str[2:])      # 结果:noob
print (str * 2)      # 结果:RunoobRunoob
print (str + "TEST") # 结果:RunoobTEST
>>> print('Ru\noob')
Ru
oob
>>> print(r'Ru\noob')
Ru\noob

2.2 字符串格式化输出

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

print ("我叫 %s 今年 %d 岁!" % ('小明', 10)) # print(  "..."  %  ( )  )
#我叫 小明 今年 10 岁!

python字符串格式化符号表

符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址

2.3 字符串"""三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)


--------结果-----------
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB (    )。
也可以使用换行符 [ 
 ]

三引号作用:

  1. 自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式

  2. 让程序员从引号和特殊字符串的泥潭里面解脱出来

一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。

errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')

2.4 格式化输出的2种方法

  • ========== 方法1: print( " … %符号 … " % (值) ) ==========

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

name = 'runoob'
print("my name is %s" % name)

print ("我叫 %s 今年 %d 岁!" % ('小明', 10)) # print(  "..."  %  ( )  )
#我叫 小明 今年 10 岁!

python字符串格式化符号表

符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址
  • ========== 方法2:print( f" … { 变量or表达式 }…" ) ==========

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

之前我们习惯用百分号 (%)

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

name = 'runoob'
print("my name is %s" % name)
print(f"my name2 is {name}")

w = {'name3':'runoob','url':'www.runoob.com'}
print(f'{w["name3"]}, {w["url"]}') # w[这里只能用双引号]

用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。

在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:

>>> x = 1
>>> **print**(f'{x+1}')  # Python 3.6
2

>>> x = 1
>>> **print**(f'{x+1=}')  # Python 3.8
'x+1=2'

2.5 更多内置函数

有很多内置函数,详细见 https://www.runoob.com/python3/python3-string.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值