python拼接字符串的语句_Python 字符串拼接、格式化操作方法

简介

字符串是Python中核心类型之一,也是编程过程中最常使用到的对象之一。有时,我们使用字符串时会经常用到字符串的拼接。如构造文件路径,网络通讯传输的字符串,数据库SQL操作时字符串的操作。以下介绍几种常用的字符串拼接方法:

直接拼接

最简单的字符串拼接方法有以下两种:

方法一:

str_a = 'hello' 'word'

方法二:用 +

str_b = 'hello' + 'word'

格式化方法

当需拼接的字符串比较多时,用直接拼接的方式就比较繁琐。而且,当有时字符串需要与变量进行拼接时,用直接拼接的方法就难以做到。就可用%s或者字典格式化的方法。常用的方法有以下几种:

%s 拼接单个

str_c = 'hello%s'

print(str_c % 'word')

# ------运行结果------

# hello word

# ------运行结果------

%s 拼接多个

注意: 传入参数数量需和字符串中%s数量一致,用%s时传入的可为其他形式的类型

str_d = 'method?name:%s,age:%s,hobby:%s.'

print(str_d % ('小明', 18, '编程'))

# ------运行结果------

# method?name:小明,age:18,hobby:编程.

# ------运行结果------

%f 方法拼接

%f 用来格式化十进制浮点数

float_a = '我还有%f元钱' % 12.5

print(float_a)

# ------运行结果------

# 我还有12.500000元钱

# ------运行结果------

float_b = '我还有%.2f元钱' % 12.5

print(float_b)

# ------运行结果------

# 我还有12.50元钱

# ------运行结果------

基于字典的格式化操作

如写SQL语句时可以用%s,也可以用字典格式化操作,传入参数时会更加明确。

ql_a = "SELECT ID FROM TABLE_1 WHERE NAME =%(name)sAND AGE =%(age)s"

print(sql_a % {'name': '小明', 'age': '18'})

# ------运行结果------

# SELECT ID FROM TABLE_1 WHERE NAME = 小明 AND AGE = 18

# ------运行结果------

语法可总结为:

"string %(key)s " % {key: value}

字典格式化与vars()内置函数

vars()内置函数可将在其被调用范围存在的变量转化为字典。

注意: 用此方法时需注意变量的作用域

def vars_test():

name = '小明'

age = 18

sql_b = "SELECT ID FROM TABLE_2 WHERE NAME =%(name)sAND AGE =%(age)s"

print(sql_b % vars())

vars_test()

# ------运行结果------

# SELECT ID FROM TABLE_1 WHERE NAME = 小明 AND AGE = 18

# ------运行结果------

字符串format方法

Python字符串对象有内置的format方法,用在需要拼接字符串时也非常方便。主要的用法有:

方法一:

类似函数位置传参,用位置 0 1 2来定位需拼接的位置:

sql_c = "SELECT ID FROM TABLE_3 WHERE NAME ={0}AND AGE ={1}"

print(sql_c.format('小明',18))

# ------运行结果------

# SELECT ID FROM TABLE_3 WHERE NAME = 小明 AND AGE = 18

# ------运行结果------

方法二:

类似函数的指定传参:

sql_d = "SELECT ID FROM TABLE_4 WHERE NAME ={name}AND AGE ={age}"

print(sql_d.format(name = '小明',age = '18'))

# ------运行结果------

# SELECT ID FROM TABLE_4 WHERE NAME =小明 AND AGE = 18

# ------运行结果------

以上内容均为原创,未经允许,禁止转载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值