字符串拼接
%
%号格式化字符串的方式继承自古老的C语言,这在很多编程语言都有类似的实现。上例的%s是一个占位符,它仅代表一段字符串,并不是拼接的实际内容。实际的拼接内容在一个单独的%号后面,放在一个元组里。类似的占位符还有:%d(代表一个整数)、%f(代表一个浮点数)、%x(代表一个16进制数),等等
print('%s %s' % ('hello','python'))
%+字典
str='%(start_time)s -- %(end_time)s 测试字符串拼接' % {'start_time': start_time, 'end_time': end_time}
format()
这种方式使用花括号{}做占位符,在format方法中再转入实际的拼接值。容易看出,它实际上是对%号拼接方式的改进。
s1 = 'Hello {}! My name is {}.'.format('World', 'Python猫')
s1 = 'Hello {0}! My name is {1}.'.format('World', 'Python猫')
print(s1)
()
s_tuple = ('Hello', ' ', 'world')
s_like_tuple = ('Hello' ' ' 'world')
print(s_tuple)
>>>('Hello', ' ', 'world')
print(s_like_tuple)
>>>Hello world
type(s_like_tuple) >>>str
面向对象模板拼接
from string import Template
s = Template('${s1} ${s2}!')
print(s.safe_substitute(s1='Hello',s2='world'))
>>> Hello world!
+
str_1 = 'Hello world! '
str_2 = 'My name is Python猫.'
print(str_1 + str_2)
>>>Hello world! My name is Python猫.
join
str_list = ['Hello', 'world']
str_join1 = ' '.join(str_list)
str_join2 = '-'.join(str_list)
print(str_join1) >>>Hello world
print(str_join2) >>>Hello-world
如果是连接数值列表,像上面这么写,会报错。如下写能解决:
','.join(map(str, a))
f-string
name = 'world'
myname = 'python_cat'
words = f'Hello {name}. My name is {myname}.'
print(words)
>>> Hello world. My name is python_cat.
当要处理字符串列表等序列结构时,采用join()方式;拼接长度不超过20时,选用+号操作符方式;长度超过20的情况,高版本选用f-string,低版本时看情况使用format()或join()方式。
字符串查找
判断一个字符串,是否包含 字符串a,字符串b,字符串c中的其中任何一个 可以用any()函数
a = "I Love Crystal!And I Hate Tom!"
name_list = ["Jessie", "Tom", "Crystal"]
print(any(name in a for name in name_list))
True
name_list = ["Jessie", "Tomi", "Rose"]
print(any(name in a for name in name_list))
False
获取GET请求的参数
param=request.GET.get('college')
获取POST请求的参数
param=request.data
后端修改params参数
request.query_params._mutable = True
request.query_params['limit'] = self.pagination_class.page_size