2020-07-07 Python学习笔记18 字符串格式化

一些关于自己学习Python的经历的内容,遇到的问题和思考等,方便以后查询和复习。

声明:本人学习是在扇贝编程通过网络学习的,相关的知识、案例来源于扇贝编程。如果使用请说明来源。

Python 中的字符串是使用一对英文单引号(')或英文双引号(")包裹的任意文本。无论是用单引号还是用双引号,它俩的效果都是一样的,但需要保持前后引号的统一。

在之前的课程练习中,我们打印的文字好像都只能在一行,如果我们要打印多行文字时,比如打印一首诗,要怎么办呢?

我们可以使用一对三引号(''' 或 """)来包裹多行字符串。三引号包裹的字符串和普通的字符串使用上没有区别,只是三引号支持多行字符串而已。

除了使用多行字符串来实现多行文本外,使用 \n 也能达到一样的效果。\n 被称为 换行符,用于文本间的换行。

poetry = '日暮苍山远,天寒白屋贫。\n柴门闻犬吠,风雪夜归人。'

print('''微明的灯影里

我知道她的可爱的土壤

是我的心灵成为俘虏了

我不在我的世界里

街上没有一只灯儿舞了

是最可爱的

你睁开眼睛做起的梦

是你的声音啊''')

三引号,一般前面和第一行在一起,后面和最后一行在一起。

如果前后引号单独出来,也能打印,但是前面好像会有空行,希望会说和答案不一致,实际应够用中前后引号应该是可以单独一行的。

通过 + 可以将两个字符串拼接,得到一个新的字符串。

full_name = first_name + '·' + last_name

把同一个字符串重复很多次的时候,我们可以使用多个 + 拼接

str1 = '海草'

str2 = str1 + str1 + str1

用 *数学中的乘法是相同的数加起来的快捷方式,Python 中字符串的拼接操作也是如此。

str1 = '海草'

str2 = str1 * 3  # 相当于 str1 + str1 + str1

Python 还提供了一种更高级的方法来组合字符串,那就是字符串格式化输出。

字符串格式化输出 是按照一种既定格式给字符串填空的方式,以便我们更加方便地写入字符串。比如一段自我介绍的文本:我叫 xx,今年 xx 岁,来自 xx。,根据我们学过的知识,我们会这样写:

def print_intro(name, age, city):

  intro = '我叫' + name + ',今年 ' + str(age) + ' 岁,来自' + city + '。'

  print(intro)

print_intro('小贝', 18, '南京')

# 输出:我叫小贝,今年 18 岁,来自南京。

使用格式化输出

def print_intro(name, age, city):

  intro = '我叫%s,今年 %d 岁,来自%s。' % (name, age, city)

  print(intro)

print_intro('小贝', 18, '南京')

# 输出:我叫小贝,今年 18 岁,来自南京。

% 运算符左边是要格式化的字符串,右边是一个元组。如果只有一个占位符,可以将元组里的元素拿出来,如:'我叫%s' % '小贝'。

我们通过 %s、%d 这样的占位符在字符串中“占位”,Python 会将 % 右边的内容会按顺序替换掉对应的占位符,一一填空。每个占位符都有特定的含义,常见的占位符:

%d、%f、%s、%x分别代表整数、浮点、串和十六进制整数

练习:天气预报

weathers = [

  ('南京', 36),

  ('成都', 30),

  ('昆明', 26)

]

for weather in weathers:

  print('今天' + weather[0] + '的最高气温是' + str(weather[1]) + '度')

  这个是用+号对字符进行拼接的。


  weathers = [

  ('南京', 36),

  ('成都', 30),

  ('昆明', 26)

]

for weather in weathers:  # 遍历所以,会一个一个元素访问的。每个元素是一个元组

  forecast = '今天%s的最高气温是%d度' %(weather[0], weather[1])

  print(forecast)

这个是适用格式format,对字符进行拼接组合。

(weather[0], weather[1])括号中的0和1是元素的索引,本题中由于前面有两个占位符,而列表中的元素是元组,刚好也是两个元素。所以会自动匹配,因此这里的0和1去掉也可以。

(weather[0], weather[1]) 其实就是列表中的元素,也就是每个元组。前面两个占位符分别使用元组的第一和第二个元素。

练习:自我介绍

身为 Python 练习生的你,练习时长有多久了呢?今天我们来用字符串格式化的知识来做段自我介绍!

格式是:同学们大家好,我是 Python 练习时长xxx的个人练习生xxx,喜欢xxx!。比如:同学们大家好,我是 Python 练习时长两年半的个人练习生小贝,喜欢唱、跳、Python、篮球!

def print_intro(duration, name, hobby):

  print('大家好,我是 Python 练习时长两年半的个人练习生小贝,喜欢唱、跳、Python、篮球!')

  # 用占位符修改上面字符串

  print('大家好,我是 Python 练习时长%s的个人实习生%s,喜欢%s!' % (duration, name, hobby))  # % 后面的部分开始没有写对,这里就是用来一个元组,元组的元素就是函数的变量。变量是在最后一行赋值,然后运行print命令。

最初我是把证据放到最后,一直报错,后来放在这里,但是最后写的是 % (print_intro)无法调用函数,不能赋值,所以占位符打出来并没有要求的内容。打出的结果是:大家好,我是 Python 练习时长的个人实习生,喜欢!这里只是打出第一个占位符的内容,因为括号中只有一个串,后面姓名和爱好的占位符没有对应内容。

# 将参数改为你的自我介绍

print_intro('两年半', '小贝', '唱、跳、Python、篮球')


你可能感兴趣的:(2020-07-07 Python学习笔记18 字符串格式化)