03字符串拼接、格式化输出、深浅复制
1.字符串的拼接:
例: a = 'hello' , b = 'python' , c = '!' 将a,b ,c 中的字符串连成一句话。
第一种方法:用 + 号
a + b +c
第二种方法:格式化字符串 %s
'%s %s %s' % (a , b ,c)
第三种方法:''.join()方式,注意括号里是要连接的可以是列表,元祖
' '.join([a,b,c]) (注:''里面是连接后面各个字符串的字符)
第四种方法:.format方式
'{}{}{}'.format(a,b,c) (注:{}里面可以填入与后面相对应的符号)
format方法详解:
'{}{}{}'.format(a,b,c)
当{}里面是空的时候,里面默认索引为0,1,2按format括号里的顺序依次填入
'{1}{2}{0}'.format(a,b,c)
当{}里面有索引值时,按前面的索引值将后面的每项依次填入
'{n1}{n2}{n3}'.format(n1=a,n2=b,n3=c)
{}里面可以指定对象名称,后面通过赋值的方式给前面的相应的值,后面是无序的
2.格式化输出
%s 格式化字符串
%d 格式化整数
%f 格式化小数
%c 格式化ASCII字符
%o 格式化八进制
%x 格式化十六进制
%e 用科学计数法格式化
- 用作左对齐
+ 用在正数前面显示加号
m.n m是显示的最小长度,当m大于格式化位数时才起作用显示m位,n是代表小数的位数。
转义字符
\n 换行 \a提示音 \b退格键 \t横向制表符
自然字符串 r' '
3.深复制和浅复制
1.元组和列表之间的相互嵌套(字符串里面都会变成字符串,失去列表和元组的方法)
2.嵌套之后可以通过索引值来取数
3.浅复制 copy(li)
4.深复制
import copy
ls=copy.deepcopy(li_1)
5.哪些是浅复制 copy 切片
课后练习:
##字符串拼接
a='i'
b ='love'
c ='python'
#第一种方法
print(a+b+c)
#第二种方法 格式化输出 %s (占位符)
print('%s %s %s'%(a,b,c)) # 'i love python'
#第三种方法 join
print(' '.join((a,b,c)))#'i love python'
#第四种方法 format
print('{} {} {}'.format(a,b,c))
print('{n1} {n3} {n2}'.format(n1=a,n2=b,n3=c))
print('{0} {2} {1}'.format(a,b,c))
##格式化输出
print('%10s'%'lucky') #10表示字符串的宽度 首先遵循实际宽度 默认右对齐
print('%-10s'%'lucky')#- 表示左对齐
print('%d'%5) #格式化整数
print('%f'%1.5) #格式化小数 默认保留6位
print('%.1f'%1.5) #.1保留一位小数
print('%3.5f'%1.5) #遵循后面的精度
print('%c'%65) #格式化ascll A
print('%c'%97) # a
print('%o'%8) #格式化八进制
print('%x'%16)#格式化16进制
print('%x'%10) #a
print('%x'%15)#f
print('%e'%100)#格式化科学计数法
##-#左对齐
##+#提示后面的正负
print('aaa\n') #\n 换行
print('bbb')
print('aaa\tbbb')#\t 制表符 tab键
#\a 提示音
#\b 退格键
#r 取消转义
##深浅复制 出现在嵌套列表
li=['a','b']
li_1=[1,li]
print(li)
lq=li_1.copy()
print(lq)
li.append('c')
print(li)
print(id(li))
print(id(lq[1]))
import copy
ls=copy.deepcopy(li_1)
print(ls)
print(id(ls[1]))
#print用法
print(1,2,3,sep=' ')#sep为默认参数,默认为' ',也可修改为任意字符
print(1,2,3,sep=',')
print(1,2,3)
print(1,2,3,end='**')#end为默认参数,默认为\n,也可修改为任意字符
print(4,5,6)
输出结果:
ilovepython
i love python
i love python
i love python
i python love
i python love
lucky
lucky
5
1.500000
1.5
1.50000
A
a
10
10
a
f
1.000000e+02
aaa
bbb
aaa bbb
['a', 'b']
[1, ['a', 'b']]
['a', 'b', 'c']
910111280712
910111280712
[1, ['a', 'b', 'c']]
910111280904
1 2 3
1,2,3
1 2 3
1 2 3**4 5 6
问题解答:
#1.a = '苦短' b = 'Python', 用4种方法,输出'人生苦短,我用Python'
#解答:
#1.
a = '苦短'
b = 'Python'
c = '人生'
d = '我用'
print(c+a+','+d+b)
#2.
print('%s%s%s%s%s'%(c,a,',',d,b))
#3.
print(''.join((c,a,',',d,b)))
#4.
print('{2}{0}{3}{4}{1}'.format(a,b,c,',',d))
#2.列表li = ['I','like','python'],用2种方法,将列表转成字符串,输出'I like python'
#解答:
li = ['I','like','python']
print('%s %s %s'%(li[0],li[1],li[2]))
print(' '.join(li))
print('{} {} {}'.format(li[0],li[1],li[2]))
print(li[0]+' '+li[1]+' '+ li[2])
#3. a=1.1,输出 a 的值,用3种格式:
# 1 字符串格式
# 2 整型格式
# 3 浮点数 、20位、保留2位小数、带上加号、然后右对齐 。效果:‘ +1.10’
#解答:
a=1.1
print('%3s'%a)
print('%d'%a)
print('%+20.2f'%a)
#4. a =12, 要求用 format方法输出 : ****12****
#解答:
a =12
print('{}{}{}'.format('****',a,'****'))
print('{}{}'.format('****',a),end='****')
打印结果:
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
人生苦短,我用Python
I like python
I like python
I like python
I like python
1.1
1
+1.10
****12****
****12****
>>>