python 基础二 基本的数据类型,字符串,字符编码

Python有五个标准的数据类型:

  • Numbers(数字)

         int(整型)

               在混合计算时,Python会把整型转换成为浮点数。

         float(浮点型)

         complex(复数)

         bool(布尔类型)

               不能参与数学运算

  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)
  • bytes(字节数组)

 

String(字符串)

说到字符串,就必然要涉及字符的编码问题。因为在计算内部,存储的只有0与1

字符编码

 在计算机中只能处理0和1的这两个数字的数字串,为了能使用计算机处理非数字问题。科学家设计出了字符编码,它是字符映射在计算机中的数字串,不同的编码方式其数字串的长度不一样,长度越长能被编码的字符越多。

ASCII

这是由美国人设计的编码方案,它有7位,可以编码全部的美国相关字符

GBK, ISO, Unicode, UTF-8, ...

随着计算机在全世界的普及,ASCII编码已不能满足需求,因此各国出现了自己的本土编码方案,好把自己国家的文字字符使用计算机来处理,但全世界的编码方案太多不利用相关软件,文档的移植,因此出现了Unicode编码,Unicode编码容纳了各种编码方案

各种编码有如下包含关系

ASCII<GBK,ISO,UTF-8...<Unicode

各种编码都是兼容ASCII码的

 

两个概念

1.存储编码

2.显示编码(你要使用的编码)

如果存储编码与要显示的编码不一致时,就需要转码,否则就会显示出乱码!!!

这是乱码出现的根本原因

在python3中的存储编码是Unicode

如果要使用其他编码时的转换关系如下

 

字符串的操作

s = "the people's republic of china"

# 索引/切片字符串
print(s[0])

print(s[2])

# 索引倒数第一个字符串,倒序时从-1开始
print(s[-1]) # a
# 索引倒数第二个字符串
print(s[-2]) # n

# 切片操作是只包括开始不包括结尾
# [start:end:step]
print(s[1:4]) #he

print(s[0:8:2]) # tepo

# 切片所有的字符串
print(s[:])  # the people's republic of china
print(s[0:])  # the people's republic of china
print(s[:-1]) #the people's republic of chin

# 如果步长是负数,则是逆序输出字符串内容
print(s[::-1]) # anihc fo cilbuper s'elpoep eht


# 首字母大写
print(s.capitalize()) # The people's republic of china

#全大写
s1 = s.upper()

# 全小写
s2 = s.lower()

print(s1) # THE PEOPLE'S REPUBLIC OF CHINA
print(s2) # the people's republic of china

# 大小写转换
print(s.swapcase()) # THE PEOPLE'S REPUBLIC OF CHINA

s3 = "hello yes-no yy*aa+dd_cc"
# 每个单词的首字母大写, 以空白符为分隔符
print(s3.title()) # Hello Yes-No Yy*Aa+Dd_Cc

# 以指定长度输出字符串,有够的地方,使用敏宇的字符填充
print(s.center(40, '=')) # =====the people's republic of china=====

# 计算字符串长度
print(len(s)) # 30

# 测试字符串是否以指定的字符串开头或结尾

# True:hello mmfk
if s.startswith("the"):
    print("hello mmfk")
    
# False
if s.endswith("cc"):
    print("hello china")
    
# 在字符串中定位某字符串,成功返回index, 失败返回-1
print(s.find("china")) # 25
print(s.find("cc")) # -1

# 在字符串中定位某字符串,成功返回index, 失败就报错
# print(s.index("cc")) # 找不到报错

# 使用指定的分隔符将字符串分隔开来,返回的是list
words = s.split(" ")
print(words) # ['the', "people's", 'republic', 'of', 'china']

# format用于连接多个字符串,这种方法比直接使用+连接要好
# format 的三种用法
s = '我叫{},今年{},爱好{},再说一下我叫{}'.format('mn',22,'girl','mn')
print(s)
name = input('请输入名字:')
s = '我叫{0},今年{1},爱好{2},再说一下我叫{0}'.format(name,22,'ff')
print(s)
name = input('请输入名字:')
s = '我叫{name},今年{age},爱好{hobby},再说一下我叫{name}'.format(age=18,name=name,hobby='fc')
print(s)

# 使用指定新字符串,去替换字符串中指定的旧字符串
s4 = s.replace('china', '中国')
print(s4)

# 字符串支持成员运算符
if 'chi' in s:
    print("到家了")

# str运算符,可以将其他类型的数据转换为字符串
str(100)

 

Number

Python Number 数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

Python 支持三种不同的数值类型:

  • 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
  • 浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
  • 复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
number1 = 0xab # 16进制表示  171
number2 = 0o15 # 八进制表示  13

x = '12'
int(x)  # 将x转换为整数

hex(number2) # 将number2 转换为16进制的表示
oct(number2) # 将number2 转换为8进制的表示
complex(number2, 2) #创建一个复数 complex(实部,虚部)

bool型数据 

0是False, 非0是True

空字符串是False, 非空字符串是True

#str --->bool

#s = "" -----> False
#非空字符串都是True
#s = "0" -----> True
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值