美文网首页
2020-07-07 Python学习笔记18 字符串格式化

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

作者: 建渐升辉 | 来源:发表于2020-07-07 08:59 被阅读0次

    一些关于自己学习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 练习时长<function print_intro>的个人实习生,喜欢!这里只是打出第一个占位符的内容,因为括号中只有一个串,后面姓名和爱好的占位符没有对应内容。

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

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

    相关文章

      网友评论

          本文标题:2020-07-07 Python学习笔记18 字符串格式化

          本文链接:https://www.haomeiwen.com/subject/ergoqktx.html