将字符串与变量连接起来,比如想打印记录一个函数输入内容和输出内容的日志,一般方法有:
1、字符串相加
a = 'input:' + input + ',output:' + output
2、使用 C 语言中的 %
a = 'input:%s,output:%s' % (input, output)
3、使用 format 方法
a = 'input:{},output:{}'.format(input, output)
以上三种方法各有利弊:
1、字符串相加最大的缺点是代码不够简洁,尤其是变量名多的时候,会看到许许多多的单引号和双引号。
2、使用 % 和 format 的好处是,一个字符串是完整简洁的,让人一眼可以看出这个字符串的全局结构,只是抠出了几个变量来供填充。但是 % 的缺点是,当变量名多的时候,不知道哪个 % 对应的是哪个变量,还需要去数数。虽然 format 可以通过在 {} 中指定key来避免这个缺点,但是这会让代码变得很长,因为只要在{}指定的key,一定会在 format 的参数中再次出现一遍。
新方法(f-string)
从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!
使用方法:
1、在字符串前面加上
f
。
2、在字符串内部,将需要连接的变量用 {} 括起来即可。
a = f'input:{input},output:{output}'
1、综合了上面三种老方法的优点,代码简洁,且变量名多的时候,不需要去数数,也没有繁琐的单引号双引号
2、括号{}里面的变量,可以是字符串类型,也可以是整型、浮点型,或者是复杂类型,比如数组、词典等,会自动转换成成字符串形式。
3、括号{}里面还可以是函数,比如
f'数组a的长度为:{len(a)}'
。一句话,只要是位于 {} 中的,都会当做 python 代码来执行。但里面只能写表达式,不能写执行语句如
{a=2}
之类的。
4、f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式,速度比上面三种老方法要块。
因此对于Python3.6及以后的版本,推荐使用f-string进行字符串格式化。
在
Python
3.6提供f-
String
s新的
字符串
格式化
语法
。不仅更加可读、简洁,相比其他方式也不易造成错误,而且还更快。
看完本文你将学习到如何以及为什么
使用
f-
string
s。正式开始之前,我们先看看之前格式化
字符串
语法
。
1. 旧式
字符串
格式化
在
Python
3.6之前,主要有两种方式格式化
字符串
:%-格式化 和 str.format()。下面我们先了解它们的用法以及局限性。
1.1 %-格式化
这时
Python
的官方
字符串
格式化方法,从语言开始时就存在。官方文档明确提出不建议
使用
,并其他
使用
其他方式代替避免不必要的错误。
String
对象内置了%操作,用于格式化
字符串
,请看示例:
(1)
String
是一个引用类型,它本身也是一个class。但是,Java编译器对
String
有特殊处理,即可以直接用“…”来表示一个
字符串
(2)实际上
字符串
在
String
内部是通过一个char[]数组表示的;所以可以
使用
new
String
(new char[])来创建
字符串
(3)Java
字符串
的一个重要特点就是
字符串
对象不可变,引用可变。这种不可变性是通过内部的private final char[]字段,以及没有任何修改char[]的方法
实现
的。
第四种功能比较强大,借鉴了C语言
中
printf函数的功能,如果你有C语言基础,看下文档就知道了。第二种比较特殊,
使用
逗号
连接
两个
字符串
,如果两个
字符串
用“逗号”隔开,那么这两个
字符串
将被
连接
,但是,
字符串
之间会多出一个空格;第一种,有编程经验的人,估计都知道很多语言里面是用加号
连接
两个
字符串
,
Python
里面也是如此直接用“+”来
连接
两个
字符串
;第三种也是,ython独有的,只要把两个
字符串
放在一起,
中
间有空白或者没有空白,两个
字符串
将自动
连接
为一个
字符串
;就属于技巧了,利用
字符串
的函数join。
抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类!这个例子也可以用简单工厂模式+反射+读取配置文件来完成,这样更加简洁!!!普通的抽象工厂模式下面通过一个模拟访问数据库的例子来进行说明:#ifndef USER
#define USER
#include <Q
String
>
#include <QtDebug>class User
public:
1.默认参数的陷阱
针对默认参数是可变数据类型。无论你调用多少次这个默认参数,所调用的都是同意地址下的数据。
针对默认参数是可变数据类型。无论你调用多少次这个默认参数,所调用的都是同意地址下的数据。
def func(name, list=[]):
list.append(name)
return list
ret = func('alex')
print(ret, id(ret)) # ['alex'] 2636141462472
ret2 = func('太白金星')
String
Concatenation is a very common operation in programming.
Python
String
Concatenation can be done using various ways. This tutorial is aimed to explore different ways to concatenate
string
s in a...
f-
string
,亦称为格式化
字符串
常量(formatted
string
literals),是
Python
3.6新引入的一种
字符串
格式化方法,该方法源于PEP 498 – Literal
String
Interpolation,主要目的是使格式化
字符串
的操作更加简便。f-
string
在形式上是以 f 或 F 修饰符引领的
字符串
(f'xxx' 或 F'xxx'),以大括号对 {} 标明...
2、当需要同时返回页面和
字符串
时,需要
使用
@Controller,来注解这个Controller类,然后在返回
字符串
的方法上,
使用
@ResponseBody,来注解那个具体的方法。3、当不需要返回页面时,可以直接
使用
@RestController注解,来代替@Controller和@ResponseBody,即可直接返回结果。1、当Controller类存在返回页面的控制器时,不可以
使用
@RestController来注解这个Controller类。秋风写于淄博,业务联系与技术交流:Q375172665。
字符串
操作是编码
中
经常进行的操作。在
实现
字符串
操作时,经常
使用
到
String
、
String
Builder、
String
Buffer、
String
Concat
Factory
。本文简单介绍下这四个类的区别及关联,方便选用。
很多时候,我们会将一些数据包的名字,以
字符串
的方式存放到一个
字符串
数组
中
,然后需要根据
字符串
去创建对应名字的数据包。本文主要介绍如何利用UVM的工厂模式,根据
字符串
创建对应名称的数据类。本文主要介绍,如何通过
字符串
,创建与之对应的数据类。