python03-编码,基本数据类型

本文深入探讨了ASCII、UTF-8编码原理,以及Python中int、str、bool、list、tuple、dict、set等数据类型的特性与操作。涵盖编码转换、字符串处理、切片索引及格式化输出等内容。

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

编码问题:

最早的计算机编码是ASCII码。包括了英文字母(大小写)数字,标点等特殊字符!@#¥%……

UTF-8,:可变长度的unicode。每个字符最少占8位,每个字符占用的字节数不定。根据文字内容进行具体编码。比如,英文,8bit,1个字节;欧洲文字,16bit,2个字节;汉字占3个字节,这时既满足了中文,也满足了节约,也是目前使用频率最高的一种编码。

int 整数,主要用来进行数学运算

str 字符串,可以保存少量数据并进行相应的操作

bool 判断真假True False

list 列表,存储大量数据,用[ ]表示

tuple元组,不可以发生改变,用()表示

dict 字典,保存键值对,一样可以保存大量数据

set集合,保存大量数据,不可以重复,其实就是不保存value的dict。

整数可以进行的操作 bit_length() 计算整数在内存中占用的二进制码的长度

bool值:取值只有True False

转换问题:你想转换成什么,就用什么括起来

                     str ==> int   int(str)    int ==> str  str(int)

                    int ==> bool bool(int)    bool==> int int(bool)      0是False,非0是True;True是1,False是0

                    str ==> bool bool(str)    bool==> str  str(bool)    空字符串是False,非空是True;  把bool值转换成相应的“值”

字符串:把字符串连成串,在python中用','','''号引起来的内容称为字符串。

切片和索引:

索引,索引就是下标,切记,下标是从0开始,从左到右;-1是从右到左。

切片S[起始位置:结束位置:步长] 

S1 = “python最牛b”

s1[0]=p  正数第一个

s1[-1]:-1表示倒数第一个

通过切片获取到的内容还是一个字符串

语法 S[起始位置:结束位置]   包括起始位置,但是不包括结束位置,顾头不顾腚,

如果起始位置不写,则默认从头开始

如果:后面位置不写,则默认到结尾

默认是从左往右切,切出牛b,则s[-2:],如果是s[-2:-1],那么只能切出牛,因为遵从顾头不顾腚。

#步长,一次切几个

语法 S[起始位置:结束位置:步长] 

s=“我是梅西,我很慌” s1 = s[1:5:2]  #是西

s=[6:2:-2]      #很,

字符串的常用操作

切记,字符串是不可变的对象,所以任何操作对原字符串是不会有任何影响的

举例:s = “alex and wusir and”

          s1=s.capitalize()

        print(s)

那么s依然输出的是“alex and wusir and”,应为字符串是不可变对象。s1变成了首字母大写。

capitalize():首字母大写

lower():全部转为小写

casefold():全部转换为小写,对所有字母有效,lower()对某些字符支持不够好。

upper():全部转为大写

center():居中,

strip():去空格;去掉的是左右两端的内容,中间的不管

例1:

username = input(“用户名:”).strip()

password = input("密码:").strip()

if username == 'alex' and password == '123':

    print("登录成功")

else:

    print(“登陆失败”)

例2:

s = “aaaa呵呵a呵呵aaaa”

print(s.strip("a"))   #呵呵a呵呵

replace():字符串替换replace(‘小学’,‘大学’)

如果replace(“alex”,“ab”,“2”) 数字2是替换2个,不是第2个的意思

字符串的切割

split():切完的东西是列表,列表装的是字符串。

用什么切,损失的就是什么

s = “alex_wusir_taibai”

lst= s.split("_")

print(lst)          #['alex','wusir','taibai']

如果用split切边,会产生空字符串。上例子lst=s.split(“wusir_taibai”),那么结果是["alex_",""]

格式化输出

s12 = “我叫%s,今年%d岁了,我喜欢%s” % (‘sylar’,18,‘周杰伦’)#之前的写法

s12 = “我叫{},今年{}岁了,我喜欢{}”.format(“周杰伦”,28,“周润发”) #按位置格式化

s12 = “我叫{0},今年{2}岁了,我喜欢{1}”.format(“周杰伦”,“周润发”,28) # 指定位置

s12 = “我叫{name},今年{age}岁了,我喜欢{singer}”.format(name=“周杰伦”,singer=“周润发”,age=“28”)#指定关键字

startswith()#判断字符串是否以XX开头

endswith()#判断字符串是否以XX结尾

count(“a”)#计算a在字符串中出现的次数

find(“a”)#查询a在字符串中出现的位置,如果没有查找的内容,则返回-1.

find("a",3,8)#从3到8开始找a

index()#索引,index中的内容如果不存在,直接报错,而find中的内容不存在,返回-1.

isalnum(  ) #判断字符串是否是由字母和数字组成

isalpha()#是否由字母组成

isdigit()#是否由数字组成,不包括小数点

isnumeric()#是否是数字  

s = “壹仟叁佰伍” 

print(s.isnumeric()) #输出为真

计算字符串的长度

len()

s1 = “我是你的眼,我也是”

ret = len(s1)

print(ret)

遍历:

方法1:s = “晓雪老师,你好漂亮”

count = 0

while count < len(s):

    print(s[count])

    count = count + 1

方法2:

for i in s:#把s中的每一个字符交给前面的i循环

    print(i)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值