您的位置:首页 > 其它

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

2018-01-11 11:51 302 查看

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****
>>>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: