python数值类型的操作_python数据类型及其操作

一、数字

常用类型:int,float

age = 10 # int型

salary = 3000.5 # float型

进制:

二进制:

11 = 1*21+ 1*20= 3

八进制:

11 = 1*81 + 1*80 = 9

十进制:

11 = 1*101 + 1*100 = 11

十六进制:

11 = 1*161 + 1*160 = 17

进制转换:

十进制转为二进制:

age = 10

print(bin(age)) => 0b1010

二进制转为十进制:

1010 = 1*23 + 0*22 + 1*21 + 0*20 = 10

十进制转为八进制:

print(oct(age)) => 0o12

十进制转为十六进制:

print(hex(age)) => 0xa

二、字符串

创建字符串:

>>> name = 'johnny' #name = str('johnny')

>>> print(type(name))

str>>> print(name[0])

j

基本操作:

移除空白

>>> name = input('username:')>>> print(name)

username: johnny

johnny

>>> name = name.strip()

>>> print(name)

username: johnny

johnny

>>> name = input('username').strip()

>>> print(name)

>>> name = '***johnny*****'

>>> print(name.strip('*'))

johnny

>>> print(name.lstrip('*'))

johnny*****

>>> print(name.rstrip('*'))

***johnny

切分

>>> user_info = 'root:x:0:0::/root:/bin/bash'

>>> print(user_info.split(':'))

['root','x','0','0','','/root','/bin/bash']>>> print(user_info.split(':')[5])/root

>>> msg = 'name johnny age 10'

>>> print(msg.split())

['name','johnny','age','10']

统计长度

>>> name = 'johnny'

>>> print(len(name)) #相当于 name.__len__()

6

切片

>>> name = 'hello world'

>>> print(name[1:3])

el>>> print(name[1])

e>>> print(name[1:9:2])

el o

其它操作

#startswith,endwith

>>> name = 'johhny_dd'

>>> print(name.endswith('dd'))

True>>> print(name.startswith('j'))

True#replace

>>> name = 'Today is a good day,choose you like'

>>> print(name.replace('Today','Tomorrow'))

Tomorrowisa good day,choose you like#format

>>> print('{} {} {}'.format('johnny',18,'male'))

johnny18male>>> print('{0} {1} {0}'.format('johnny',18,'male'))

johnny18johnny>>> print('{name} {age} {sex}'.format(name='johnny',age=18,sex='male'))

johnny18male>>> print('NAME:{name} AGE:{age} SEX:{sex}'.format(name='johnny',age=18,sex='male'))

NAME:johnny AGE:18SEX:male#isdigit

>>> num = '123'

>>> print(num.isdigit())

True

who_age= 10whileTrue:

age= input('>>:').strip()if len(age) == 0:continue

ifage.isdigit():

age=int(age)print(age,type(age))#find,index,count

>>> name = 'johnny'

>>> print(name.find('o'))1

>>> print(name.find('x'))-1

>>> print(name.index('o'))1

>>> print(name.find('x'))

报错>>> name = 'johnny hello'

>>> print(name.find('o',2,4))-1

>>> print(name.count('o'))2

>>> print(name.count('o',0,3))1

#join 都必须是字符串

>>> l = ['johnny','say','hello','world']>>> print(':'.join(l))

johnny:say:hello:world>>> l1 = ['johnny',11]>>> print(';',join(l1))

报错#center,ljust,rjust,zfill

>>> name = 'johnny'

>>> print(name.center(30,'*'))************johnny************

>>> print(name.ljust(30,'*'))

johnny************************

>>> print(name.rjust(30,'*'))************************johnny>>> print(name.zfill(30))

000000000000000johnny#lower,upper

>>> name = 'JOHNNY'

>>> print(name.lower())

johnny>>> name = 'johnny'

>>> print(name.upper())

JOHNNY#capitalize,title

>>> msg = 'johnny say ji'

>>> print(msg.capitalize())

Johnny say hi>>> print(msg.title)>>>Johnny Say Hi#isalnum,isalpha

>>> name = 'johnny123'

>>> print(name.isalnum())

True>>> print(name.isalpha())

False

#in

>>> msg = 'my name is johnny'

>>> print('johnny' in msg)

>>> msg = 'hello'

>>> a,b,c,d,e = msg

>>> print(a,b,c,d,e)

h e l l o

三、列表

创建列表:

name = ['unknown','working','safe']

name = list(['unknown','working','safe'])

基本操作:

索引

>>> name = ['unknown','working','safe',4,6,1]>>> print(name[1])

working

切片

>>> print(name[1:3])

['working','safe']

追加,一次只能追加一个值

>>> name.append('hobby')>>> print(name)

['unknown','working','safe',4,6,1,'hobby']

插入

>>> name = ['ruwee','johnny','ruwee','nihao','hello','world']>>> name.insert(2,'mo')>>> print(name)

['ruwee','johnny','mo','ruwee','nihao','hello','world']

删除 pop

>>> name.pop() #默认从后面删除,按照索引进行删除['unknown','working','safe',4,6,1]>>>name.pop(0)

['working','safe',4,6,1,'hobby']

删除 remove 按照值进行删除

>>> name.remove('working')

['safe',4,6,1,'hobby']

长度

>>> name = ['unknown','working','safe']>>> print(len(name))3

包含

>>> print('unknown' inname)

True

其它操作

>>> my_friends = ['ruwee','johnny','ruwee','nihao','hello','world']>>> my_friends.clear() #清空所有

>>> l =my_friends.copy()>>> print(l)

['ruwee','johnny','ruwee','nihao','hello','world']>>> print(my_friends.count('ruwee'))2

>>> print(my_friends.extend(['how','are','you'])) #一次性添加多个值['ruwee','johnny','ruwee','nihao','hello','world','how','are','you']>>> print(my_friends.index('how'))6

>>> print(my_friends.reverse())

['you','are','how','world','hello','nihao','ruwee','johnny','ruwee']>>> l = [4,6,1,-1]>>>l.sort()>>> print(l)

[-1,1,4,6]

>>> data = ['johnny',22,[23,1,2]]

>>> name,age,birth = data

>>> print(name)

'johnny'

>>> print(age)

22

>>> print(birth)

[23,1,2]

四、字典

创建字典:

person = {'tom':12,'jerry':15,'peter':20}

person = dict({'tom':'12','jerry':'15','peter':'20'})

基本操作:

索引

>>> print(person['tom'])12

新增

>>> person['height'] = 1.8

>>> print(person)

{'tom':12,'jerry':15,'peter':20,'height':1.8}>>> dic = {'a':1,'b':2}>>>person.update(dic)>>> print(person)

{'tom':12,'jerry':15,'peter':20,'height':1.8,'a':1,'b':2}

删除

>>> person.pop('tom')>>> print(person)

{'jerry':15,'peter':20,'height':1.8}>>> print(person.pop('sdfdsff',None))

None

获取值

>>> person = {'tom':12,'jerry':15,'peter':20}>>> print(person.get('tom'))12

>>> print(person.get('sdf'))

None>>> print(person['dsf'])

报错

键值对

>>> print(person.keys())

dict_keys(['tom','jerry','peter'])>>> print(person.values())

dict_values([12,15,20])>>> print(person.items())

dict_items([('tom',12),('jerry',15),('peter',20)])

>>> d={}

>>> d['name']='tom'

>>> d['age']=12

>>> d['sex']='male'

>>> d.setdefault('hobby',['basketball','football','pingpang'])

['basketball', 'football', 'pingpang']

>>> d

{'name': 'tom', 'age': 12, 'sex': 'male', 'hobby': ['basketball', 'football', 'pingpang']}

循环

for key,value inperson.items():print(key,value)

五、集合

集合内可以有多个元素,但是每个元素都必须是不可变类型

集合内的元素唯一

集合是无序的

创建集合:

>>> s = {3,4,7,1}

或>>>set__test = set('world')>>>print(set_test)

{'w','d','l','o','r'}>>> s1 = set('hello')>>> print(s1)

{'o','e','l','h'}

基本操作:

in , not in

>>> pythons = {'hello','how','are','you','fine','thank'}>>> print('hello' inpythons)

True

| 并集

>>> s1={1,10,11,22}>>> s2 = {1,11,33}>>> print(s1 |s2)

{1,33,10,11,22}

& 交集

>>> s1={1,10,11,22}>>> s2 = {1,11,33}>>> print(s1&s2)

{1,11}

- 差集

>>> s1={1,10,11,22}>>> s2 = {1,11,33}>>> print(s1 -s2)

{10,22}

^ 对称差集

>>> s1={1,10,11,22}>>> s2 = {1,11,33}>>> print(s1 ^s2)

{33,22,10}

父集

>>> s1 = {1,2,3,4}>>> s2 = {1,2}>>> print(s1 >=s2)

True

子集

>>> print(s1 <=s2)

False

其它操作

>>> s = set([3,5,9,10])

>>> print(s.pop()) # 随机删值>>> t = set('Hello')>>> t.add('x')>>> s.update([10,37,42])>>> t.remove('H') # 删除不存在的会报错

>>> t.discard('dfsfsd') # 删除不存在的不会报错>>> len(s)

>>> s=set() # 空集合

>>> y={} # 空字典

六、元组

元组不可变,主要用来读

创建元祖:

age = (32,12,54,25)

age = tuple((32,12,54,25))

基本操作:

索引

>>> age = (32,12,54,25)>>> print(age[2])54

切片

>>> print(age[0:3])

(32,12,54)

长度

>>> print(len(age))4

包含

>>> print(12 inage)

True

其它操作

>>> printt(age.index(25))3

>>> print(age.count(32))1

七、补充

>>>res=input('>>:')123 #字符串类型

>>>l=eval(res) #把字符串中的命令拿出来执行一遍>>>type(l)

>>>

>>>eval('print("ok")')

ok

八、文件处理

流程:

1.打开文件,得到句柄并且赋给一个变量

2.通过句柄进行文件操作

3.关闭文件

基本操作:

读取文件

f = open('a.txt','r',encoding='utf-8')

res=f.read()print(res)print(f.readline())

f.close()

with方式打开的文件在操作结束后可以自动关闭文件

with open('a.txt','r',encoding='utf-8') as f:pass

写入文件

f=open('a.txt','w',encoding='utf-8')

f.write('11111\n')

f.writelines(['a\n','b\n','c\n'])

f.close()

替换文本中的内容

#old.txt

alex hahaha

woca le alex

alex qunimeide

alex feile feile

importos

with open('old.txt','r',encoding='utf-8') as read_f,\

open('.old.txt.swap','w',encoding='utf-8') as write_f:for line inread_f:if 'SB' inline:

line=line.replace('SB','alex') # 目前改的还是内存级别的

write_f.write(line) # 刷回到硬盘

os.remove('old.txt')

os.rename('.old.txt.swap','old.txt')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值