内容概要

  1. 格式化输出
  2. 运算符
  3. 编码
  4. 基本数据类型
  5. 深浅拷贝、小数据池

 

 

1、格式化输出

# %s 占位字符串. 实际上可以占位任何东西(用的最多的)
# %d 占位整数. 只能占位数字

# name = "wusir"
# hobby = "打篮球"
print("%s喜欢%s" % (name, hobby))

 

# 如果你的python是3.6以上, 此时可以使用模板字符串
# f"{变量}"

# print(f"{name}喜欢{hobby}") # 模板字符串

 

 

2、运算符

01、算数运算

Python开发【第二篇】:基础数据类型

 

 

02、比较运算

Python开发【第二篇】:基础数据类型

 

 

03、赋值运算

Python开发【第二篇】:基础数据类型

 

 

04、逻辑运算

Python开发【第二篇】:基础数据类型

01. and

并且, 左右两端必须同时为真, 最终的结果才能是真, 有一个是假, 结果就是假

 

2, or

或者, 左右两端有一个是真. 结果就是真. 全都是假, 结果才能是假

3, not

非.不. 非真既假, 非假既真

4. 优先级

如果出现混合逻辑运算. 顺序: () => not => and => or

 

例如:

print(not 1 > 5 and 4 < 6 or 7 > 8 and 1 < 9 or 5 > 6)
True
先算 not: 1 >5:取反,为True
再算 and: True and 4 < 6 :True , 7 > 8 and 1 < 9 :False
最后 or: True or Flase or 5 > 6
  结果为:True

 

 

5. a or b

如果 a 是0,结果是b
如果 a 是非0,结果就是a
print(1 or 2) # 1 print(0 or 3) # 3 print(1 or 5) # 1 print(0 or 5) # 5

#0就是假,非0就是真

 

6. a and b

和 or 相反
print(1 and 2) # 2
print(0 and 3) # 0
print(1 and 5) # 5
print(0 and 5) # 0

 

 

05、成员运算

 Python开发【第二篇】:基础数据类型

例如:

s = "alex特别喜欢太白金星"
if "胡辣汤" in s:
    print("胡辣汤在 s 变量中")
else:
    print("胡辣汤不在 s 变量中")
胡辣汤不在 s 变量中

print("胡辣汤" in s)
False
print("胡辣汤" not in s)
True

 

 

3、编码

01. ASCLL码

       早期. 计算机是美国发明的. 普及率不高, 一般只是在美国使用. 所以. 最早的编码结构就是按照美国人的习惯来编码的. 对应数字+字母+特殊字符一共也没多少. 所以就形成了最早的编码ASCII码. 直到今天ASCII依然深深的影响着我们.

       ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

 

 

02. GBK国标码

        随着计算机的发展. 以及普及率的提高. 流行到欧洲和亚洲. 这时ASCII码就不合适了. 比如: 中文汉字有几万个. 而ASCII最多也就256个位置. 所以ASCII不行了. 怎么办呢? 这时, 不同的国家就提出了不同的编码用来适用于各自的语言环境.比如, 中国的GBK, GB2312, BIG5, ISO-8859-1等等. 这时各个国家都可以使用计算机了.

       GBK, 国标码占用2个字节. 对应ASCII码 GBK直接兼容. 因为计算机底层是用英文写的. 你不支持英文肯定不行. 而英文已经使用了ASCII码. 所以GBK要兼容ASCII.

       这里GBK国标码. 前面的ASCII码部分. 由于使用两个字节. 所以对于ASCII码而言. 前9位都是0

字母A:0100 0001 # ASCII
字母A:0000 0000 0100 0001 # GBK 国标

 

03. Unicode 万国码

       国标码的弊端: 只能中国用. 日本就垮了. 所以国标码不满足我们的使用. 这时提出了一个万国码Unicode. unicode一开始设计是每个字符两个字节. 设计完了. 发现我大中国汉字依然无法进行编码. 只能进行扩充. 扩充成32位也就是4个字节. 这回够了. 但是. 问题来了. 中国字9万多. 而unicode可以表示40多亿. 根本用不了. 太浪费了. 于是乎, 就提出了新的UTF编码.可变长度编码

       UTF-8: 每个字符最少占8位. 每个字符占用的字节数不定.根据文字内容进行具体编码. 比如. 英文. 就一个字节就够了. 汉字占3个字节. 这时即满足了中文. 也满足了节约. 也是目前使用频率最高的一种编码

UTF-16: 每个字符最少占16位.
GBK: 每个字符占2个字节, 16位

 

 

# 用的最多的编码就是utf-8
# 1. 英文: 8bit -> 1byte
# 2. 欧洲文字: 16bit -> 2byte
# 3. 中文: 24bit -> 3个字节 中文有9万多个

 

# python2.x使用的是ascii
# python3.x内存中使用的unicode, 文件存储使用:utf-8

# s = "古力娜扎" # 字符串直接就是unicode
# print(s)

# # 想要存储到文件中. 必须进行转换 => utf-8 或者GBK

 

04. 编码与解码

编码之后的数据是bytes类型的数据,还是原来的数据只是经过编码之后表现形式发生了改变而已。

bytes的表现形式:

  •  英文 b'alex' 英文的表现形式和字符串没什么两样
  •  中文 b'\xe4\xb8\xad' 这是一个汉字的UTF-8的bytes表现形式
# s = "lishichao"
# print(s.encode("utf-8"))  # 将字符串编码成UTF-8
# print(s.encode("GBK"))    # 将字符串编码成GBK
#结果:
# b'lishichao'    # 英文编码之后的结果和源字符串一致
# b'lishichao'

s = "李世超"
print(s.encode("utf-8"))  # 将字符串编码成UTF-8
print(s.encode("GBK"))    # 将字符串编码成GBK
#结果:
# b'\xe6\x9d\x8e\xe4\xb8\x96\xe8\xb6\x85'     # 一个中文的UTF-8编码是3个字节
# b'\xc0\xee\xca\xc0\xb3\xac'                 #  一个GBK的中文编码是2个字节

#使用decode()来进行解码操作,吧bytes类型的数据还原回我们熟悉的字符串:
print(b'\xe6\x9d\x8e\xe4\xb8\x96\xe8\xb6\x85'.decode('UTF-8'))
print(b'\xc0\xee\xca\xc0\xb3\xac'.decode('GBK'))

 

编码和解码的时候都需要制定编码格式:

s = "我是文字"
bs = s.encode("GBK") # 我们这样可以获取到GBK的文字
# 把GBK转换成UTF-8
# 首先先要把GBK转换成unicode. 也就是需要解码
s = bs.decode("GBK") # 解码
# 然后需要进行重新编码成UTF-8
bss = s.encode("UTF-8") # 重新编码
print(bss)

# 用什么编码,就用什么解码。

 

4、基本数据类型

4.1 python基本数据类型

  1. int ==> 整数. 主要用来进行数学运算
  2. str ==> 字符串, 可以保存少量数据并进行相应的操作
  3. bool==> 判断真假, True, False
  4. list==> 存储大量数据.用[ ]表示
  5. tuple=> 元组, 不可以发生改变 用( )表示
  6. dict==> 字典, 保存键值对, 一样可以保存大量数据
  7. set==> 集合 保存大量数据. 无序;不可以重复. 其实就是不保存value的dict

 

4.2 int

  整数类型,主要用来数学运算,只有一个方法。

a = 3 # 二进制用11表示
print(a.bit_length())  #计算二进制长度
#结果为:2

 

4.3 bool

  布尔值只有两个:True、Flase 主要用来条件判断。

 

基本数据类型之间互相转换

bool => int
a = True
b = False
print(int(a))
print(int(b))

# 整数中 0=> False 非0 =>True

#所有表示空的东西都是假
print(bool(""))
print(bool("a"))
print(bool(None))  #None 表示空 

 

4.4 str

  把字符连成串. 在python中用', ", ''', """引起来的内容被称为字符串.

   

01、字符串的索引和切片

索引:

# 索引就是第几个字符, 索引从0开始
# s = "jay"
# print(s[1])   #a  []表示索引
# print(s[2])   #y
# print(s[-1])  #y
# print(s[-3])  #j

 

切片:

# s = "alex昨天看冯提莫直播. 刷了1w个鱼丸"
s[4:8]      # 默认从左到右切, 顾头不顾尾[start, end)
s[-6:-2]    
s[8:4]      #这样取不到值
s[:6]        # 从头开始切, 切到6为止
s[:]          # 从头到尾 

# 带有步长的切片
s = "wusir喜欢和alex一起去探讨课件"
print(s[3:8:2]) # 从3到8 每2个出来1个  i喜和
print(s[::2])   # 从头到尾 步长为2

# 如果步长为负数, 从右到左
print(s[::-1])
print(s[-1:-6:-2])
print(s[-3::-3])

 

02. 字符串相关操作:

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

- 大小写转换:

1. 首字母大写

# s = "alex"
# s1 = s.capitalize()  # 首字母大写, 字符串是不可变的数据类型. 每次操作都会返回新字符串
# print(s)
# print(s1)
View Code

相关文章: