Python数据类型及其操作

本文详细介绍了Python编程语言的基础语法,涵盖了数字、字符串、列表、字典、集合、元组等数据类型的操作方法,以及文件处理的基本流程。通过实例演示了如何创建、访问、修改和删除各种数据类型的元素,适合Python初学者快速掌握核心概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文(作几处笔误修改):https://www.cnblogs.com/Ryans-World/p/7158537.html

一、数字Number

常用类型: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]) #从1位开始,到9位结束(不包括9位),步长是2(每隔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'))
Tomorrow is a good day,choose you like

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

#isdigit
>>> num = '123'
>>> print(num.isdigit())
True

who_age = 10
while True:
    age = input('>>:').strip()
    if len(age) == 0:continue
    if age.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)) #在第2至4位查找'o'位置
-1
>>> print(name.count('n'))
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  按照值进行删除(无discard方法)

>>> name.remove('working')

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

长度

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

包含

>>> print('unknown' in name)
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 in person.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' in pythons)
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 in age)
True

 其它操作

>>> printt(age.index(25))
3
>>> print(age.count(32))
1

补充

>>>res=input('>>: ')
123             #字符串类型
>>>l=eval(res)          #把字符串中的命令拿出来执行一遍
>>>type(l)
<class 'list'>
>>>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
import os
with open('old.txt','r',encoding='utf-8') as read_f,\
    open('.old.txt.swap','w',encoding='utf-8') as write_f:
    for line in read_f:
        if 'SB' in line:
            line=line.replace('SB','alex')   # 目前改的还是内存级别的
        write_f.write(line)                # 刷回到硬盘
os.remove('old.txt')
os.rename('.old.txt.swap','old.txt')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值