美文网首页
python之基本数据类型点滴

python之基本数据类型点滴

作者: Python野路子 | 来源:发表于2017-12-10 00:29 被阅读0次
  • 字符串的拼接
    例:a = '苦短', b = 'Python' ,输出'人生苦短,我用Python'
  1. 用“+” 连接
a = '苦短'
b = 'Python'
print('人生'+a+',我用'+b) 
  1. 格式化字符串 %s
a = '苦短'
b = 'Python'
print('人生%s,我用%s'%(a,b))
  1. ' '.join()方式,注意括号里是要连接的可以是字符串,列表,元组可迭代的,其中里面的元素,必须是字符,因为这个方法是字符拼接,前面' '里面是连接 后面各个字符串的字符,即用什么字符来连接;
a = '苦短'
b = 'Python'
print(''.join(['人生',a,',','我用',b]))
  1. 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    #遵循参数长度,即小于本身长度,显示本身;
  1. 整数
print('%d'%2) >>>'2' #可以int('%d'%2)来转化为int型
print( '%d'%2.6) >>>'2'   #格式化整数部分
  1. 小数
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'  #冲突了(所给出的宽度小于给出的精度时)遵循后面的精度
  1. %o 格式化8进制
print('%o'%8) >>>'10'
print('%o'%7) >>>'7'
  1. %x 格式化16进制
print('%x'%16) >>> '10'
print('%x'%9) >>>'9'
print('%x'%10) >>>'a'
print('%x'%11) >>>'b'
print('%x'%15) >>>'f'
  1. %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

在Python中不可变对象指:一旦创建就不可修改的对象,包括字符串,元祖,数字

在Python中可变对象是指:可以修改的对象,包括:列表、字典

相关文章

网友评论

      本文标题:python之基本数据类型点滴

      本文链接:https://www.haomeiwen.com/subject/ktzpixtx.html