【Python】字符串与字符串之间连接的五种方式/字符串与非字符串之间连接的三种方式

举报
孤寒者 发表于 2021/08/05 21:39:20 2021/08/05
【摘要】 【Python】字符串与字符串之间连接的五种方式/字符串与非字符串之间连接的三种方式

面试题第三关:

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

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

第一部分——考点:

  1. 字符串与字符串之间如何连接。
  2. 字符串与非字符串之间如何连接。

第二部分——面试题:

1.面试题一:字符串与字符串之间连接有几种方式。

2.面试题二:字符串如何与非字符串之间连接。

3.面试题三:字符串与对象连接时如何让对象输出特定的内容,如:MyClass。


第三部分——解析:

面试题一 之 字符串与字符串之间连接的方式(共计五种):

  1. (加号)+
s1 = 'hello'
s2 = 'world'
s = s1 + s2
print(s)

在这里插入图片描述

  1. 直接连接
S = "hello""world"
print(S)

在这里插入图片描述

  1. 用逗号(,)连接
print('hello','world')    # 但是这样只能直接打印,如果我们想将其放入变量里的话

在这里插入图片描述

拓展:标准输出的重定向——即把print输出到控制台重定位为给一个变量。

from io import StringIO
import sys
old_stdout = sys.stdout
result = StringIO()
sys.stdout = result
print('hello','world')
sys.stdout = old_stdout     # 恢复标准输出
result_str = result.getvalue()
print("逗号连接:",result_str)

在这里插入图片描述

  1. 格式化
s1 = 'hello'
s2 = 'world'
s = '<%s> <%s>' %(s1,s2)
print("格式化:",s)

在这里插入图片描述

  1. join
s1 = 'hello'
s2 = 'world'
s = " ".join([s1,s2])
print("join连接:",s)

在这里插入图片描述

面试题二 之 字符串与非字符串之间如何连接:

  1. (加号)+
s1 = 'hello'
s2 = 'world'
n = 20
v = 12.44
s = s1 + str(n) + str(v)
print(s)

在这里插入图片描述

  1. 格式化
s1 = 'hello'
s2 = 'world'
n = 20
v = 12.44
s = '<%s> <%d> <%.2f>' %(s1,n,v)
print("格式化:",s)

在这里插入图片描述

  1. 重定向
from io import StringIO
import sys

s1 = 'hello'
s2 = 'world'
n = 20
v = 12.44

old_stdout = sys.stdout
result = StringIO()
sys.stdout = result
print(s1,True,n,v,sep='*')   # sep 是规定连接使用的符号
sys.stdout = old_stdout     # 恢复标准输出
result_str = result.getvalue()
print("逗号连接:",result_str)

在这里插入图片描述

面试题三 之 字符串与对象连接时如何让对象输出特定的内容,如:MyClass:


s1 = 'hello'
s2 = 'world'

class MyClass:
    def __str__(self):
        return 'Myclass'
my = MyClass()
s = s1 + str(my)
print(s)

在这里插入图片描述

拓展:python中的三引号!
Python 中三引号可以将复杂的字符串进行赋值。

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

三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。