python---变量与数据类型,字符编码

一,变量

1,变量类型

变量的类型可以有:整型,浮点型,字符型

2,变量赋值

用等号(=)来给变量进行赋值
name="xiaoming"

注:python中的变量赋值不需要类型声明。
3,多个变量赋值

a=b=c=1
i,j,k=1,2.1,"xx"

4,定义变量的规则

(1) 变量名为数字,字母,下划线组成;
(2)变量名的第一个字符不能是数字;
(3)关键字不能声明为变量

二,数据类型

1,整型

在32位机器上,整型的位数为32位,取值范围为-232~232-1
在64位机器上,整型的位数为64位,取值范围为-264~264-1

注:python中整型没有长整型,短整型之分。
2,浮点型
(1)浮点数的形式

十进制形式:如5.12,512.3
科学计数形式:如5.12e2(5.12x10^2),5.12E2,314e2

3,布尔值

0(False),1(True)

4,字符串
(1)定义

在python中,用引号引起来的就为字符串(引号可以是‘ ’,“ ”)
由数字,字母,下划线组成。

(2)字符串切片

从左到右索引为:默认是从0开始,最大范围是字符串长度-1;
从右向左索引为:默认从-1开始,最大范围是字符串开头。

a="we like python"
print(a[0:2])  #取头不取尾
print(a[1:])   #取第一个字符后的所有字符
print(a[-3:-1])  #从后向前索引
print(a[0:8:2]) #2表示步长,取偶数

(3)拼接(+)

a="we like python"
b="123"
print(a+b)

注:不同字符类型不能实现拼接
(5)重复(*)

a="we like python"
print(a*2)

(6)字符串操作

a="we love python"
b="1223"
print(a.count("o"))  #统计字符串中o的数目
print(a.center(20,"+")) #将字符串存入到center开辟的空间中,并将字符串居中
print(a.capitalize())  #将字符串的首字母大写
print(a.encode(encoding="utf-8"))  #将字符串编码
print(a.expandtabs(tabsize=10))  #将tab转换为空格
print(a.endswith("n"))  #判断字符串以什么字符结尾
a="{name} love python"
print(a.format(name="liu")) #格式化输出
a.format_map({"name":"liu"}))  #字典的方式格式化输出
print(a.find("w"))  #输出元素下标
print(a.isdigit())  #判断是不是数字
print(a.isupper())  #判断是不是大写
print(a.istitle())  #判断所有单词拼写首字母是否为大写
print(b.isspace())  #判断是不是空格
print(a.isprintable())  #判断是否能打印,终端文件和设备文件不能被打印
print(a.islower())  #判断是不是小写
print(b.isdecimal())  #判断是不是二进制
print(b.isidentifier())  #判断是不是合法的标识符
print(b.isalpha())  #判断是不是字母
print(b.isalnum())  #判断字符串是否由数字,字母构成
print(b.isnumeric())  #判断是不是数字
print(a.join(b))  #将序列中的元素以指定的字符连接生成新的字符串
print(a.ljust(20,"+"))  #将字符串左对齐,不够补全
print(a.rjust(20,"+"))  #将字符串右对齐,不够补全
print(a.lstrip())  #去掉左边空格
print(a.rstrip())  #去掉右边空格
print(a.strip())  #去掉左右两边空格
p=str.maketrans("abcdef","123456")  #将前面值和后面做映射,要求一一对应
print("adf".translate(p))  #根据前面的字符转换后面的字符
print(a.upper())  #将小写转换为大写
print(a.lower())  #将大写转换为小写
print(a.zfill(20))  #用0填充不够的长度
print(a.replace("w","W"))  #用后面的字符串替代前面的
print(a.rpartition(" "))  #从最右边开始按分隔符进行分割并返回元组,第一个为分隔符最左边的字符串,第二个为分隔符本身,第三个为分隔符最右边的字符串
print(a.rsplit(" ")) #通过指定字符串对元素进行分割,并返回列表
print(a.startswith("o"))  #判断是不是以指定字符串开头
print("anliu\nis \na \nboy".splitlines())  #返回一个各行作为元素的列表
print(a.swapcase())  #对字符串的大小写进行转换

三,列表

(1)定义

列表用[]标识,如list=[‘1’,‘a’,‘li’]
它支持字符,数字,字符串,列表

(2)切片,拼接,重复都和字符串的一样
(3)查看索引

list=["12","we like python","00"]
print(list.index("00")) 

在这里插入图片描述
(4)统计元素

list=["12","we like python","00"]
print(list.count("00"))

(5)追加

list=["12","we like python","00"]
print(list.append("aaa"))
print(list)

在这里插入图片描述
(6)清空

list=["12","we like python","00"]
print(list.clear())
print(list)

在这里插入图片描述
(7)删除

list=["12","we like python","00","00"]
print(list.pop(1))
print(list)

在这里插入图片描述
注:不指定默认删除最后一个字符
(8)反转,将从前往回变为从后往前

list=["12","we like python","00","00"]
print(list.reverse())
print(list)

在这里插入图片描述
(9)合并列表

list=["12","we like python","00","00"]
a=["wm","gth"]
print(list.extend(a))
print(list)

在这里插入图片描述
(10)以ASCII码进行排序

list=["12","we like python","00","00"]
list.sort()
print(list)

在这里插入图片描述
(11)移除

list=["12","we like python","00"]
list.remove("00")
print(list)

在这里插入图片描述
(12)插入

list=["12","we like python","00"]
list.insert(2,"111")
print(list)

在这里插入图片描述
(13)删除列表

list=["12","we like python","00"]
del list[1]
print(list)

在这里插入图片描述
(14)列表的复制
浅copy

p=["12","we like python","00"]1)list1=p.copy()2)list2 = copy.copy(p)3)list3=p[:]4)list4 = list(p)

深copy

list5=copy.deepcopy(p)

浅copy和深copy对比:

#浅copy
p = ["name",["a",100]]
list1=p.copy()
list2=p.copy()
print(list1)
print(list2)
list1[0]="00000"
list1[1][1]="200"
print(list1)
print(list2)

在这里插入图片描述
对于浅copy,第一层创建的是新的内存地址,而从第二层开始至更深的层,指向的都是同一个内存地址。

#深copy
p = ["name",["a",100]]
list3=copy.deepcopy(p)
list4=copy.deepcopy(p)
print(list3)
print(list4)
list3[0]="00000"
list3[1][1]="200"
print(list3)
print(list4)

在这里插入图片描述
深copy不仅仅拷贝最外层容器,还会拷贝容器中的地址。

四,字典

列表是有序的对象集合,字典是无序的对象集合
1,定义

字典用{}标识,由索引(key)和它对应的值(value)组成。
字典当中的元素是通过键来存取,而不是通过偏移存取

2,字典可以嵌套列表:

info={"name":["xiaoxiao","wm"]}

3,字典的操作

info={"name":["xiaoxiao","wm"]}
print(info.items())  #以元组的形式输出
print(info.keys())  #获取所有key值
print(info.get("name")) #获取值
print(info.values())  #获取所有value值
info["age"]="aaa"  #有则修改,无则增加
print(info)

4,字典也存在深copy和浅copy

五,字符编码

1,python程序中的字符编码
当我们用分别python2和python3运行下列程序:

[root@localhost test]# cat python2.py
#/usr/bin/python2
print("你好")

用户python2运行时会报错:
在这里插入图片描述
用python3运行时可输出正确结果;
在这里插入图片描述
原因是因为python2中默认的字符编码格式是ASCII格式,不能解析中文字符;python3中的默认的字符编码格式是utf-8,可以解析中文字符。我们可以用查看默认的字符类型。

import sys
print(sys.getdefaultencoding())

因此如果在python2的程序中指定编码格式即可正确输出结果。
在这里插入图片描述
2,字符编码的介绍

1)ASCII(美国信息交换标准代码)规定其最多只能用8位来表示。即2^8-1=255个字符。
(2)由于ASCII码无法将世界上的各种文字及字符全部表示,因此产生了Unicode,它为每种语言的每个字符设定了统一并且唯一的二进制编码,规定所有字符和符号最少由16位(2个字节)来表示。 
(3)utf-8.是对Unicode编码的压缩和优化,他将所有放入字符和符号进行分类,ASCII码中的内容用1个字节保存,欧洲的字符用2个字节保存,东亚的字符用3个字节保存,

3,字符编码(decode)和解码(encode)
在这里插入图片描述
(1)对于python2
将utf-8--------->gbk

[root@localhost test]# cat python2.py
#/usr/bin/python2
#-*- encoding:utf-8 -*-
import sys
a="您好"
#print(sys.getdefaultencoding())
a_to_unic=a.decode("utf-8")
a_to_gbk=a_to_unic.encode("gbk")
print(a_to_unic)
print(a_to_gbk)

将gbk------------>utf-8

a_to_utf8=a.decode("gbk").encode("utf-8")

(2)对于python3
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值