- 字符串的拼接
例:a = '苦短', b = 'Python' ,输出'人生苦短,我用Python'
- 用“+” 连接
a = '苦短'
b = 'Python'
print('人生'+a+',我用'+b)
- 格式化字符串 %s
a = '苦短'
b = 'Python'
print('人生%s,我用%s'%(a,b))
- ' '.join()方式,注意括号里是要连接的可以是字符串,列表,元组可迭代的,其中里面的元素,必须是字符,因为这个方法是字符拼接,前面' '里面是连接 后面各个字符串的字符,即用什么字符来连接;
a = '苦短'
b = 'Python'
print(''.join(['人生',a,',','我用',b]))
- format方式
a = '苦短'
b = 'Python'
print('人生{},我用{}'.format(a,b)) #当{}里面是空的时候,里面默认索引为0,1,2。。。其对应值按format后括号里的元素顺序依次填入;
print('人生{0},我用{1}'.format(a,b))
print('人生{1},我用{0}'.format(b,a))#利用{}索引时,按照{}中索引在format后找到对应索引值填入,其中format后的值索引依次为0,1,2.。。。
print('人生{n2},我用{n1}'.format(n1=b,n2=a))#{}里面可以指定对象名称,通过对象名称去format后面取对应值,可以是无序的。
# 可以这么理解{}中需要什么,直接从format后面对号入座,默认顺序是0,1,2.....,
- 此处有坑:
li1=['I','like']
li2 = ['python','!']
#前面索引指取后面哪个元素,后面[]指元素哪个值
print('{0[0]} {0[1]} {1[0]}{1[1]}'.format(li1,li2))
- 格式化输出
1.字符串
#如果值本身不够指定宽度,默认右对齐
print('%10s'%'python') >>> python #左边4个空格,右边对齐
print('%-10s'%'python') >>>python #右边4个空格,-表示左对齐
print('%-1s'%'python') >>>python #遵循参数长度,即小于本身长度,显示本身;
- 整数
print('%d'%2) >>>'2' #可以int('%d'%2)来转化为int型
print( '%d'%2.6) >>>'2' #格式化整数部分
- 小数
print('%f'%2.2) >>>'2.200000' #默认6位小数
print('%.3f'%2.2) >>>'2.200' #小数点后面代表精度
print('%10.3f'%2.2) >>>' 2.200' #小数点前面的数代表整个长度
print('%010.3f'%2.2) >>>'000002.200' #前面可以用0填充
print('%3.5f'%2.2) >>>'2.20000' #冲突了(所给出的宽度小于给出的精度时)遵循后面的精度
- %o 格式化8进制
print('%o'%8) >>>'10'
print('%o'%7) >>>'7'
- %x 格式化16进制
print('%x'%16) >>> '10'
print('%x'%9) >>>'9'
print('%x'%10) >>>'a'
print('%x'%11) >>>'b'
print('%x'%15) >>>'f'
- %e 格式化科学计数法
'%e'%100 #'1.000000e+02' 相当于10的2次方
'%e'%1.3 #'1.300000e+00' 相当于1.3的
7.+ 显示他的正负
'%+d'%2 #‘+2’
'%+d'%-2 #'-2' 注意引号里面不要写-,因为这个代表左对齐
%d'%-2 #'-2'
- 举例:
a=1.1,用3种格式,输出 a 的值: 字符串格式, 整型格式, (浮点型+带加号+靠右端)
'%s'%a >>>'1.1'
'%d'%a >>>'1' #格式化整数部分
'%+10.1f'%a>>>'+0000001.1' #值本身不够指定长度,默认右对齐,前面可以用0填充
重点
- 深浅复制
首先要理解python中的变量含义,对于python而言,python的一切变量都是对象,变量的存储的只是一个变量的值所在的内存地址,而不是这个变量的只本身。类似指针,采用了引用语义的方式
Python中对象的赋值都是进行对象引用(内存地址)传递
1)首先看个简单的例子:
image.png image.png
上面,首先a初始化得到1的内存地址,然后再复制给b,b也指向了1,当a重新初始化后,指向了2,但是b不变
2)看个复杂的,列表:
image.png image.png
lis2指向同一个列表,而里面元素又指向各自内存,无论lis或lis2改变其中一个,则2个都变,因为他们指向同一个列表;
image.png使用copy.copy(),可以进行对象的浅拷贝,它复制了对象,但对于对象中的元素,依然使用原始的引用.
image.png如果需要复制一个容器对象,以及它里面的所有元素(包含元素的子元素),可以使用copy.deepcopy()进行深拷贝
image.png
浅复制 #复制第一层
深复制 #复制所有层
深浅复制 只存在于嵌套列表;
可参考:https://www.cnblogs.com/huamingao/p/5809936.html
网友评论