Python再接触

本文介绍了Python中的编码转换,包括unicode与utf-8、gdk之间的解码与编码。接着讲解了Python的运算符类别,如算数、比较、赋值等。文章重点阐述了Python的基本数据类型,包括数字(整数、浮点数)、字符串、布尔值、集合、列表、元组和字典,并列举了数字和字符串的常用方法,如数字的加法、字符串的增删改查等操作。
摘要由CSDN通过智能技术生成

编码之间的转换

这里写图片描述

unicode 编码成 utf-8 utf-8 解码成 unicode
unicode 编码成 gdk gdk 解码成 unicode
.decode() //编码
.encode() //解码

例子:

a = "dyq"                         
a_unicod = a.encode('utf-8')   # a = "dyq" 解码成 unicod
a_gdk = a_unicod.decode('gdk')  # a_gdk 编码成 gdk
print()

字符编码之间的转换关键要记住一个图,这个其实没太大作用,P3都是默认utf-8,除非遇到不同编码类型的才需要重新解码,编码
Python3版本可以直接转码成gdk,不需要解码到unicod再编码成gdk了,省略了一步。

a_utf8 = a_unicod.decode('gdk') 

运算符

算数运算
这里写图片描述

比较运算
这里写图片描述

赋值运算
这里写图片描述

逻辑运算
这里写图片描述

成员运算
这里写图片描述


基本数据类型

这里写图片描述

从上图可得的分类:

单值

  • 数字(int)
    整数
    浮点数
    在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
    在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
  • 字符串(str)
  • 布尔值(bool)
    真(True)
    假(False)

集合

  • 列表(list)
  • 元组(tuple)
  • 字典(dict)

不同的类里面有针对各自对象的功能(又称方法),需要的时候从类里调用方法。

查看数据类型

a = "what"
print(type(a))   #type可以用来查看数据类型

查看类型的方法

print(dir(123)) #dir函数可以显示数据a里面所有的方法名称(只是显示名称)
print(help(123))    #help函数可以查看数据类型的方法详情

数字类型常用方法

  • 整数之间的加法 + 其实就是运行功能里的 _add_

这个只做简单了解,就是运算的时候其实是调用的类里面的add方法

n1 = 123
n2 = 456
print(n1+n2)  =  print(n1.__add__n2)
  • .length:获取该数字占用的最小位数是多少
n1 = 123
b = n1.bit_length()
print(b)
>>> 7   #最少7位

当然还有很多可以方法供我们使用,了解详情请点这里


字符串类型常用方法

对字符串的增
  • +=:增加内容
name = "xiaoming"
b = "123"
name += b[0:2]    #这里选择把变量b范围内的内容添加到name里面
name += "b"     #然后再在name的最后一列加上字符“b”
print(name)

数字123用引号括住以后,在赋值给变量,这时它的类型就不再是数字了,而是字符串类型。


对于字符串类型没有专门的删除方法

对字符串修改
  • .upper(self):字符串里的内容全部变大写
name = "xiaoming"
print(name)
name2 = name.upper()    #upper后面的括号不添加参数
print(name2)

输出内容:
xiaoming
XIAOMING
  • .lower:全部变小写
print(name.lower()) 
  • .capitalize(self):首字母变大写
name = "xiaoming"
print(name.capitalize())

输出结果:
Xiaoming
  • .center(self, width, fillchar=None),其他部分用指定字符填充
a = "eric"
b = a.center(10,"*")    #括号里的内容表示的意思是,把eric居中到10位里面,空白处用*填充
print(b)

输出结果:
***eric***
  • .expandtabs(self, tabsize=None):拓展,把制表符变成指定个数空格
content = "hello\t123"
print(content.expandtabs())     #默认变成8个空格
print(content.expandtabs(10))   #也可以指定变成多少个空格,但指定个数要包含前面的内容的个数。
输出结果:
hello   123
hello     123   
  • .join(self, iterable):用什么什么连接元素
a = ("xiao","ming")    
s = "--".join(a)    #这里的用法不太一样,前面跟参数,后面跟对象,这里表示用"--"把两个元素连接起来,用来连接的内容可以指定
print(s)

输出结果:
xiao--ming
  • .swapcase:小写变大写,大写变小写
a = "xiao"
b = "MING"
print(a.swapcase())
print(b.swapcase())

输出结果:
XIAO
ming
  • .partition:分隔,以指定字符为分隔点把值分隔开
name = "xiaoming"
b = name.partition("o")     #括号内可以指定用其中的那个字符作为分割点
print(b)

输出结果:
('xia', 'o', 'ming')    #分隔以后数据类型就变成了元组类型。
  • replace(self, old, new, count=None:替换,把自定内容替换成另一个指定内容
name = "xiaoming"
b = name.replace("o", "a")      #括号内的参数,第一个是旧内容,第二个是新内容
print(b)
  • .strip() .lstrip() .rstrip():移除空格,三个方法:可以移除所有空格;可以移除左;右空格。

    有时候元素中会有空格,我们需要对数据里的空格进行修改,但只集中操作无法删除对象中间的空格

name = " xiao ming "
print(name.strip())
print(name.rstrip())
print(name.lstrip())

输出结果:
xiao ming
 xiao ming
xiao ming 
  • .decode(self, encoding=None, errors=None):对字符编码
  • .encode(self, encoding=None, errors=None):对字符转码
a = "xiaoming"                         
a_unicod = a.encode('utf-8')   # a = "dyq" 解码成 unicod
a_gdk = a_unicod.decode('gdk')  # a_gdk 编码成 gdk
print()

对字符串的查

  • .count(self, sub, start=None, end=None):统计子序列的个数
name = " xiao ming "
b = name.count("i",0, 5)    #括号里的参数,第一个表示要统计的对象,第二和第三个表示统计的范围,从0开始算起。
print(b)

输出结果:
1   #在元素的第一位到第五位,i字符一共出现了1次所以统计为1
  • .endswith(self, suffix, start=None, end=None):是否以某字符结尾
  • startswith(self, prefix, start=None, end=None):是否以某个字符开头
name = "xiao ming"
print(name.endswith("a", 0, 3))     #第一个参数表示指定结尾字符,第二三个参数指定位置
print(name.startswith("o"))

输出结果:
True    #如果是以这个字符结尾的则返回真,如果不是返回假
False
  • .find(self, sub, start=None, end=None):查找字符位置,如果没有则返回-1
name = "xiaoming"
print(name.find("a", 0, 6))

输出结果:
2
  • index(self, sub, start=None, end=None):与上面的find作用相同,但没有找到后则会报错

这里就不举例说明了

  • isalnum(self):是否是数字和字符,如果元素中包含字符和数字的话就返回真
name = "123xiaomin/g3"
print(name.isalnum())

输出结果:
False   #因为字符里面有特殊字符所以不为真
  • .isalpha(self):是否为字母,如果为则为真

  • .isdigit(self):是否为数字,如果为则为真

  • .islower(self):是否为小写,如果为则为真

当然还有很多可以方法供我们使用,了解详情请点这里

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值