zoukankan      html  css  js  c++  java
  • python字符串格式化的几种方式

    1.%格式符

    name = '李四'
    age = 18
    a = "姓名:%s,年龄:%s"%(name,age)
    print(a)     #姓名:李四,年龄:18
    ​
    b = "%(name)s,%(age)s"%{'name':'张三','age':18}
    print(b)     #张三,18

    这种格式化并不是很好,因为它很冗长并且容易导致错误,比如没有正确显示元组或字典

    2.str.format()

    name = '李四'
    age = 18
    # 替换字段用大括号进行标记
    a1 = "hello, {}. you are {}?".format(name,age)
    print(a1)     #hello, 李四. you are 18?
    # 通过索引来以其他顺序引用变量
    a2 = "hello, {1}. you are {0}?".format(age,name)
    print(a2)    #hello, 李四. you are 18?
    # 通过参数来以其他顺序引用变量
    a3 = "hello, {name}. you are {age1}?".format(age1=age,name=name)
    print(a3)    #hello, 李四. you are 18?
    # 从字典中读取数据时还可以使用 **
    data = {"name":"张三","age":18}
    a4 = "hello, {name}. you are {age}?".format(**data)
    print(a4)    #hello, 李四. you are 18?

    在处理多个参数和更长的字符串时仍然可能非常冗长

    3.f-Strings

    f-strings 是指以 f 或 F 开头的字符串,其中以 {} 包含的表达式会进行值替换。

    name = '李四'
    age = 18
    # F 和 f 的简单使用
    b1 = f"hello, {name}. you are {age}?"
    b2 = F"hello, {name}. you are {age}?"
    print(b1)     # hello, 李四. you are 18?
    print(b2)     # hello, 李四. you are 18?
    
    # 字典也可以
    teacher = {'name': 'meet', 'age': 18}
    msg = f"The teacher is {teacher['name']}, aged {teacher['age']}"
    print(msg)  # The comedian is meet, aged 18
    
    # 列表也行
    l1 = ['meet', 18]
    msg = f'姓名:{l1[0]},年龄:{l1[1]}.'
    print(msg)  # 姓名:meet,年龄:18.
    
    #可以插入表达式
    def sum_a_b(a,b):
        return a + b
    a = 1
    b = 2
    print('求和的结果为' + f'{sum_a_b(a,b)}')
    
    #多行f  反斜杠
    name = 'barry'
    age = 18
    ajd = 'handsome'
    
    speaker = f'Hi {name}.'
              f'You are {age} years old.'
              f'You are a {ajd} guy!'
    print(speaker)   #Hi barry.You are 18 years old.You are a handsome guy!
    print(f"{You are very "handsome"}")     #报错
    
    
    #括号的处理  -->重点:两对为一组
    print(f"{{73}}")  # {73}
    print(f"{{{73}}}")  # {73}
    print(f"{{{{73}}}}")  # {{73}}
    
    
    m = 21
    # ! , : { } ;这些标点不能出现在{} 这里面。
    # print(f'{;12}')  # 报错
    # 所以使用lambda 表达式会出现一些问题。
    # 解决方式:可将lambda嵌套在圆括号里面解决此问题。
    x = 5
    print(f'{(lambda x: x*2) (x)}')  # 10
  • 相关阅读:
    C#的dll被其他程序调用时,获取此dll正确的物理路径
    用鼠标右键选择DataGridView单元格或行
    当心回车符破坏你的JSON数据
    WinForm中当TextBox重新获得焦点时输入法失效问题
    django-rest-framework登陆认证
    django-celery定时任务以及异步任务and服务器部署并且运行全部过程
    linux安装mysqlclient报错
    Dajngo的CBV和FBV
    五分钟看懂Celery定时任务
    Nginx+uWsgi生产部署Django
  • 原文地址:https://www.cnblogs.com/lilinyuan5474/p/11700812.html
Copyright © 2011-2022 走看看