%操作符
参考以下示例:
在在在name="埃里克。" 在在在“你好,% s。”%的名字 你好,埃里克。
当有多个变量需要插入到字符串中时:
在在在name="埃里克。" 在在在年龄=74 在在在“你好,% s。你是% s。”%(姓名、年龄) 你好,埃里克。你是74。>之前当需要替换的变量进一步增多时,使用,%操作符格式化字符串会导致代码可读性变得很差:
在在在first_name="埃里克。" 在在在last_name="空闲" 在在在年龄=74 在在在职业=跋簿缪菰薄? 在在在联系=熬掾? 在在在“你好,% s % s。你是% s。你是一个% s。你是一个成员% s。”% (first_name、last_name、年龄、职业、联系) “你好,埃里克闲置。你是74年。你是一个喜剧演员。你是一个成员的巨蟒。 >之前<强> str.format() 强>
str.format()是对,%方式的改进,它使用常见的函数调用的语法,并且可以通过定义对象本身的,__format__()方法控制字符串格式化的具体行为。
基本用法:
在在在name="埃里克。" 在在在年龄=74 在在在“你好,{}。你是{}”。。格式(姓名、年龄) 你好,埃里克。你是74。>之前str.format()相对于,%操作符有着更强的灵活性。比如可以通过数字索引来关联替换到字符串中的变量:
在在在name="埃里克。" 在在在年龄=74 在在在“你好,{1}。{0}。”。格式(年龄、姓名) 你好,埃里克。你是74。>之前为了提高代码可读性,,{}中也可以使用有具体含义的参数名:
在在在name="埃里克。" 在在在年龄=74 在在在“你好,{名称}。你是{时代}”。格式(name=姓名、年龄=年龄) 你好,埃里克。你是74年的针对字典结构的数据:
在在在人={“名称”:“埃里克”,“年龄”:74} 在在在“你好,{名称}。你是{}时代。”。格式(name=人(的名字),年龄=人(“年龄”)) 你好,埃里克。你是74。>之前或者更简洁的方式:
在在在人={“名称”:“埃里克”,“年龄”:74} 在在在“你好,{名称}。你是{时代}”。.format(* *人) 你好,埃里克。你是74。>之前问题在于当需要替换的变量很多时,,str.format()方式依然会导致代码变得过于冗长:
在在在first_name="埃里克。" 在在在last_name="空闲" 在在在年龄=74 在在在职业=跋簿缪菰薄? 在在在联系=熬掾? 在在在“你好,{first_name} {last_name}。你是{时代}。\ 你是一个{行业}。你是一个成员\{归属}。” .format (first_name=first_name、last_name=last_name=年龄岁\ 职业=职业,关系=归属) “你好,埃里克闲置。你是74年。你是一个喜剧演员。你是一个成员的巨蟒。”
基本用法
在在在name="埃里克。" 在在在年龄=74 在在在“你好,{名称}。你是{}时代。” 你好,埃里克。你是74。>之前嵌入表达式
在在在f“{2 * 37}” “74” 在在在def to_lowercase(输入): …返回input.lower () 在在在name=" Eric闲置" 在在在f”{to_lowercase(名字)}很有趣” “埃里克闲置很有趣” 在在在f”{name.lower()}很有趣” “埃里克闲置很有趣”f-string中还可以直接嵌入某个对象实例,只要其内部实现了,__str__或者,__repr__方法:
类喜剧演员: def __init__(自我,first_name、last_name、年龄): 自我。first_name=first_name 自我。last_name=last_name 自我。年龄=年龄 def __str__(自我): 返回f”{自我。first_name}{自我。last_name} {self.age}” new_comedian=喜剧演员(“埃里克”、“空闲”,74年) 打印(f“{new_comedian}”) # Eric空闲是74 多行f-string 在在在name="埃里克。" 在在在职业=跋簿缪菰薄? 在在在联系=熬掾? 在在在消息=( …“嗨{名称}。” …“你是{行业}。” …f“你在{归属}”。 …) 在在在消息 “嗨,埃里克。你是一个喜剧演员。以前你在巨蟒。”详解Python3中的字符串格式化语法