前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Python完全自学教程》免费在线连载4.2.1

《Python完全自学教程》免费在线连载4.2.1

作者头像
老齐
发布2022-04-01 10:04:36
5350
发布2022-04-01 10:04:36
举报
文章被收录于专栏:老齐教室

4.2 字符串

顾名思义,“字符串”就是由一个或多个字符“串”起来—— Python 3.x 中的才是真正字符串,Python 2.x 中的严格称呼应为“字节串”。不过,现在读者暂不用关注历史。

4.2.1 创建字符串

其实,前面已经出现了的 'Hello,World',就是一个字符串( String )。在 Python 中创建字符串的方法非常简单。

代码语言:javascript
复制
>>> s = 'python'             # (3)
>>> book = "learn python"    # (4)
>>> poem = """我住长江头,
... 君住长江尾。"""            # (5)
>>> type(s)
<class 'str'>
>>> type(book)
<class 'str'>
>>> type(poem)
<class 'str'>

注释(3)(4)(5)分别演示了三种用于定义字符串的引号:

  • 注释(3)使用一对单引号(英文状态)包裹若干字符,定义了字符串对象。如图4-2-1所示,以此为例显示了定义字符串的形式。

图4-2-1 定义字符串的形式

  • 注释(4)使用一对双引号(英文状态)定义字符串。
  • 注释(5)使用一对“三引号”——此处使用的是三个“双引号”,用三个“单引号”亦然——定义字符串,俗称“多行字符串”,其内部允许使用换行(敲“回车键”),如图4-2-2所示。

图4-2-2 输入多行字符串

注意,作为字符串的标志,包裹字符串的“单引号”、“双引号”和“三引号”,在键盘输入的时候必须是英文状态,并且要成对出现,否则无法定义字符串对象。

代码语言:javascript
复制
>>> "I am learning Python'
  File "<stdin>", line 1
    "I am learning Python'
                          ^
SyntaxError: EOL while scanning string literal

在注释(5)之后使用内置函数 type() 查看三个对象的类型,返回值 str 即表示 Python 中字符串类型,与之前所学对象类型同理,存在同名的内置函数 str() ,通过它也能创建字符串——但有局限。

代码语言:javascript
复制
>>> sint = str(250)
>>> type(sint)
<class 'str'>
>>> sint
'250'

以整数为 str() 的参数,返回值是一个字符串 '250'——也可以理解为将整数 250 用函数 str() 转化为了字符串 '250'

'250' 这样的完全由数字组成的字符串,可以用 int() 函数将其转化为整数。

代码语言:javascript
复制
>>> result = int('250')
>>> result
250
>>> type(result)
<class 'int'>

类似地,float() 则可以将数字构成的字符串转化为浮点数。

代码语言:javascript
复制
>>> float('3.14')
3.14
>>> float('250')
250.0
>>> float('1e2')
100.0
>>> int('1e2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1e2'

注意上面的报错信息,对于 int() 函数而言,其参数必须是 0 到 9 的数字构成的字符串。

代码语言:javascript
复制
>>> int('a45')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'a45'
>>> int('hello')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'hello'

下面还要提醒读者注意两个貌似“差不多”的字符串:

代码语言:javascript
复制
>>> empty_str = str()    # (6)
>>> empty_str
''
>>> spacing = " "        # (7)
>>> spacing
' '
>>> bool(empty_str)      
False
>>> bool(spacing)        
True

注释(6)定义了一个“空字符串”,其结果与直接输入 '' (注意输入方法,连续输入两个单引号,在两个单引号之间,没有任何符号)效果一致;注释(7)则是在两个引号之间,输入了一个空格。虽然 empty_strspacing 有点类似,但它们是完全不同的对象。空字符串的布尔值是 False ,而“空格”是通过键盘输入的一个字符——所有通过键盘输入的都是字符,包括不可见的和可见,所以 spacing 的布尔值是 True

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老齐教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.2 字符串
    • 4.2.1 创建字符串
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档