03字符串拼接、格式化输出、深浅复制笔记

字符串拼接、格式化输出、深浅复制

1、字符串拼接

a = 'hello'

b = 'python'

c = '!'
第一种:+ 号拼接
a + b + c
第二种: %s ,占位符
'%s %s %s' % (a, b, c)
第三种: ' '.join
' '.join(['a', 'b', 'c'])                # 参数是可迭代对象

' '.join([1,2])                  # 会报错, 必须要是 str 型
第四种方法: .format() 跟 %s 相似,用到的是 {} 进行占位
'{} {} {}'.format(a, b, c)  # 默认按照 0, 1, 2

'{1}[2]{0}'.format(a,b,c) #指定索引,后面是无序的
{} 里面可以指定对象名称,后面通过赋值的方式给前面的对象相应的值,后面是无序的
'{n1} {n2} {n3}'.format(n1=a, n2=b, n3=c)    # 也可以赋值的形式

'{} {} {}'.format(n1=a, n2=b, n3=c)     # 报错

2、格式化输出

'%s' % 'zhangge'

#'zhangge'

'%15s' % 'zhangge'      # 输出时按15个占位符

#'        zhangge'

'%-8s' % 'aa'                  # 输出时字符串左对齐

#'aa      '

'%s' % 1                        # 整数

#'1'

'%s' % 1.1                      # 俘点数

#'1.1'

'%s' % [1, 2, 3, 4]          # 列表

#'[1, 2, 3, 4]'

'%d' % 2

#'2'

'%d' % 1.1

#'1'

'%f' %10.2                    # 默认小数点后6位

# '10.200000'

'%.3f' % 10.2                # .3 保留小数点后3位

# '10.200'

'%10.3f' %  10.2            # 占10位输出,小数点后保留3位

'%-10.3f' % 10.2

# '10.200    '

'%c' % 65    # ASCII

#'A'

'%c' % 97

#'a'

'%o' % 7      # 逢8进1    八进制

#'7'

'%o' % 8

#'10'

'%o' % 24

#'30'

# 1-9,A, B ,C ,D, E, F    十六进制

'%x' % 9

#'9'

'%x' % 10

#'a'

'%x' % 11

#'b'

'%x' % 12

#'c'

'%x' % 13

#'d'

'%x' % 14

#'e'

'%x' % 15

#'f'

'%x' % 16

#'10'

'%x' % 17

#'11'

# %e 用科学计算法格式化

'%e ' % 10

#'1.000000e+01 '        1*10 的1次方

'%e' % 100

#'1.000000e+02'        1*10 的2次方

+ 用在正数前面显示加号

'%+d' % 1

#'+1'

'%+d' % -1    # 负数自动识别返回负数

#'-1'

\n 换行 \t 制表位 \a 提示音 \b 退格

s = 'www\nwww'

print(s)

#www

#www

s = 'www\twww'

print(s)

#www www

r ' ' 取消转义

s = r'www\nwww'
print(s)
# www\nwww

深复制和浅复制

深复制和浅复制,只会在出现在嵌套列表的时候

浅复制
li = ['a','b']
l2 = ['c',li]
#输出结果:
#['c', ['a', 'b']]
l3 = l2.copy()
#输出结果:
#['c', ['a', 'b']]
id(l2),id(l3)                              #  新生产一个列表
#输出结果:
#(49062728,49063432)
id(l3[1]),id(l2[1])                      # 嵌套的列表 li 的 id 相同,没有生成新的对象
#输出结果:
#(48962696, 48962696)

浅复制,就是 l2.copy() ,嵌套的列表不会新建一个对象,都引用一个对象li

li= l2[li] = l3[li]
深复制
import copy                              # 导入模块
l4 = copy.deepcopy(l2)            # 将 l2 复制给 l4
id(l2[1]),id(l4[1])                       # 求 l2 索引为1,l4索引为1 的 id 值
#(48962696, 48877064)          id 不一样

扩展

'%s'%'asd'
'%r'%'asd' #如果是字符串,就多加一个引号 “ 'asd'  ”
# “ 'asd'  ”

你可能感兴趣的:(03字符串拼接、格式化输出、深浅复制笔记)