Python 3 学习笔记(二)----数据类型

一、初识模块2

标准库:

  • sys模块:
1 import sys
2
3 print(sys.path) #新建文件名不能与导入的模块名相同
4 print(sys.argv)
  • os模块:
1 import os
2
3 cmd_res = os.system("dir")#执行命令,不保存结果
4 cmd_res = os.popen("dir").read()
5 print("-->",cmd_res)
6
7 os.mkdir("new_dir")#新建目录

第三方库:

例如自行写一个login.py的模块用以将来使用时调用

 1 import getpass
 2
 3 _username = ‘Irlo‘
 4 _password = ‘abc123‘
 5 username = input("username:")
 6 password = getpass.getpass("password:")  #pycharm中getpass不可用
 7
 8 if _username == username and _password == password:
 9     print("Welcome user {name} login...".format(name=username))
10 else:
11     print("Invalid username or password!")

以后想要使用这个模块时直接调用“import login”即可。调用这个模块时要确保login.py与应用文件在同一目录下,或者将login.py存放在site-packages文件夹中。

在调用login.py的模块时会自动生成一个login.pyc文件,python在第一次执行代码的时候先预编译一次存为.pyc,下一次运行的时候查找与运行文件同名的.pyc文件,比较两个文件的修改时间,如果.py文件比较新,则重新创建一个.pyc,反之则直接执行。

二、数据类型

数字:

  • int(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1;

  在64位机器上,整数的位数为64位,取值范围为-2**63~2**63-1.

  • long(长整型)

  在python3里没有长整形,python3会帮你自动转换

  • float(浮点型)

  3.14和314.1592E-4是浮点数的例子,E标记表示10的幂

  • complex(复数)

  复数由实数部分和虚数部分组成,一般形式为x+yj。基本用不上,物理工程类能用上

布尔值:

真或假

1或0------>True or False

字符串:

用"内容"表示。万恶的字符串拼接不要用

字符串格式化输出:

name = "Irlo"

print("My name is %s" % name)

#输出"My name is Irlo

字符串操作:

 1 name = "My name is Irlo"
 2
 3 print(name.capitalize())
 4 print(name.count("m"))
 5 print(name.center(50,"-"))
 6 print(name.endswith("lo"))
 7 print(name.find("s"))
 8 print(name.format(name="Irlo",year=26))
 9 print(name.isalnum())
10 print("234".isdecimal())#判断是否为十进制
11 print("1A".isdigit())#判断是否为数字
12 print("1A".isidentifier())#判断是否为一个合法的标识符
13 print("33.2".isnumeric())#判断是否只有数字
14 print("My Name Is   ".istitle())#判断是否是标题,如果首字母都是大写就算是
15 print("+".join(["1","2","3"]))#把列表按照适当的方式变成字符串
16 print(name.ljust(50,"*"))
17 print("Irlo/n".lstrip())#strip会去除两边的空格和回车,lstrip会去除左边的空格和回车
18 print(name.maketrans())

str operation

列表:

1 name = ["Irlo","Xiaoxiao","Dali"]
2
3 name_list = list(["Irlo","Xiaoxiao","Dali"])

列表操作:索引、增加、删除、修改、切片、循环、包含

list operation

列表的操作中copy比较特殊

 1 import copy#完全复制需要导入模块copy
 2 names = ["JiYuchi","YuTao",["XiaoXiao","LiuSijia"],"DengKai","ChenXiaojie"]
 3 name2 = copy.deepcopy(names) #深copy(完全复制)尽量不用,因为会占用很大的内存
 4 names[1] = "于涛"
 5 names[2][0] = "XIAOXIAO"
 6 print(names)
 7 print(name2)
 8
 9 names = ["JiYuchi","YuTao",["XiaoXiao","LiuSijia"],"DengKai","ChenXiaojie"]
10 name1 = names.copy()#浅copy,只copy第一层
11 names[1] = "于涛"
12 names[2][0] = "XIAOXIAO"
13 print(names)
14 print(name1)
15 names = ["JiYuchi","YuTao",["XiaoXiao","LiuSijia"],"DengKai","ChenXiaojie"]
16 for i in names:
17     print(i)
18 #range(1:10:2)
19 print(names[0:-1:2])#选中范围头和尾,步长为2,打印偶数的人名
20 print(names[::2])#当0和-1时可以省略
21 print(names[:])#表示从头全部打印

copy

元组:

元组就是不可以修改的列表,用“()”表示,只有两种操作,一个是count(统计),一个是index(获取下标)

字典:

字典中可以包含多个层级,由key和value组成

info = {
    "snis1701":‘mingrihua‘,
    "snis1702":‘tongxuehui‘,
    "snis1703":‘heidaodage‘,
    "snis1704":‘guanggao‘,
}

字典的常用操作:索引、新增、删除、"键、值、键值对"、循环、长度

 1 info = {
 2     "snis1701":‘mingrihua‘,
 3     "snis1702":‘tongxuehui‘,
 4     "snis1703":‘heidaodage‘,
 5     "snis1704":‘guanggao‘,
 6 }
 7 print(info) #字典是无序的,它没有下标
 8 #print(info["snis1701"])#取出,用这种方式查找如果字典中不存在的话会报错,不推荐
 9 info["snis1701"] = "明日花"#修改
10 info["snis1705"] = "shuicaili"# 如果原字典中没有则添加
11 del info["snis1701"] #python自带的删除方式
12 info.pop("snis1702") #字典的删除方式
13 print(info)
14 print(info.get("snis1706"))#字典中常用的取出、查询方式
15 print("snis1703" in info) #判断字典中是否有这一项;在python 2.x中写作info.has_key("1703")

多重字典:

 1 game_catalog = {
 2     "Europe and American":{
 3         "BlizzCon":["WOW","Diablo","OverWatch"],
 4         "Ubisoft":["Assassin","Rainbow Six","Tom Clancy‘s Ghost Recon"],
 5         "Frontier Development":["Elite Dangerous","Planet Coaster","Screamride"],
 6     },
 7     "Japan":{
 8         "Capcom":["Resident Evil","Street Fighter","Asura‘s Wrath"],
 9         "Square Enix":["Final Fantasy","Dragon Quest","NieR Automata"],
10         "Namco":["Pac-Man","Ace Combat","Tekken"],
11     },
12     "China":{
13         "Tencent":["LOL","King of Glory","CrossFire"],
14         "Netease Games":["HearthStone","Heroes of the Storm","StarCraft"],
15     }
16 }
17
18 ‘‘‘
19 game_catalog["China"]["Tencent"][2] = "Alliance of Valiant Arms"
20
21 game_catalog.setdefault("Korea",{                        #setdefult会看你新建字典的key是否已经在原字典中,如果原字典中没有,那么就把新字典加入进去;如果原字典中已经有了,那么就默认原字典的key不变
22     "Nasdaq Game":["Mir2","Aion","XCB"],
23     "Nexon":["Crazyracing","DNF","Counter-Strike Online"],
24 })
25 ‘‘‘
26 add = {
27     "Korea":{
28         "Nasdaq Game":["Mir2","Aion","XCB"],
29         "Nexon":["Crazyracing","DNF","Counter-Strike Online"],
30     }
31 }
32 game_catalog.update(add)   #uodate用于更新字典,如果原字典中没有,则新添加进去;如果原字典中已经有了新字典中的key,则更新以新字典内容为准
33 print(game_catalog)
34
35 print(game_catalog.items())   #把字典变为列表

字典知识点拾遗:

info = {
    "snis1701": ‘mingrihua‘,
    "snis1702": ‘tongxuehui‘,
    "snis1703": ‘heidaodage‘,
    "snis1704": ‘guanggao‘,
}
b = {
    "snis1701":"Book",
    1:3,
    4:9,
}
info.update(b)
print(info)
c = dict.fromkeys([5,6,7],[2,{"ubisoft":"Rainbow Six"},"Telsa"])#初始化一个新字典(初始化与原字典无关,所以用dict),前面是key,后面是value
print(c)
c[7][1]["ubisoft"] = "Assassin"  #如果要修改,注意key要完全一致,不然会变成添加
print(c) #用fromkey创建字典只能创建一层,多层的话在修改的时候只能修改一层

for i in info:
    print(i,info[i])

三、入门知识拾遗

三元运算:

1 a,b,c = 1,2,3
2
3 d = a if a>b else c
4 print(d)

进制:

二进制:0,1
八进制:0,1,2,3,4,5,6,7
十进制:0,1,2,3,4,5,6,7,8,9
十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F     #十六进制1位数对应4位二进制
十六进制的表示方法:
BH,后缀法,看到H表示为十六进制的B,结果为11,二进制1011
0X53,前缀法,看到0X表示为十六进制的53,结果为83,二进制1010011(5为0101,3为0011)

bytes:

python3对文本和二进制数据作了更为清晰的区分。文本总是unicode,由str类型表示,二进制数据则由bytes类型表示。python3不会任意隐式的方式混用str和bytes。不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)

1 #str和bytes通过编码和解码的方式互相转换
2 print("哈哈哈哈".encode("utf-8"))# str转bytes的时候要说明str的编码方式,b表示bytes
3 b‘\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88‘
4 print(b"\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88".decode("utf-8"))#bytes转str的时候要声明转换成str时用什么编码
时间: 2024-10-09 03:12:37

Python 3 学习笔记(二)----数据类型的相关文章

2. 蛤蟆Python脚本学习笔记二基本命令畅玩

2. 蛤蟆Python脚本学习笔记二基本命令畅玩 本篇名言:"成功源于发现细节,没有细节就没有机遇,留心细节意味着创造机遇.一件司空见惯的小事或许就可能是打开机遇宝库的钥匙!" 下班回家,咱先来看下一些常用的基本命令. 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/48092873 1.  数字和表达式 看下图1一就能说明很多问题: 加法,整除,浮点除,取模,幂乘方等.是不是很直接也很粗暴. 关于上限,蛤蟆不太清楚

Python个人学习笔记二

一  线程简介 说道python线程,其封装和方法也比较多样,使用比较方便.目前主要的有三种方式. 1.1 方法一:通过使用thread模块中的函数创建新线程. 但是注意在3.4版本里面,该函数已经不再thread模块之中,若要引用需要导入 import _dummy_thread.其函数实现源码为: def start_new_thread(function, args, kwargs={}): """Dummy implementation of _thread.star

Python3学习笔记(二)--数据类型:字符串、列表、元组、数字、字典、集合

变量赋值 Python 中的变量赋值不需要类型声明. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. Python中允许为多个变量同时赋值 a = b = c =1 a, b, c = 1, 'b', 1.1 # 将1, 'b'分别赋值给a.b,1.1赋值给c 标准数据类型 Python有五个标准的数据类型 String(字符串) List(列表) Numbers(数字) Tuple(元组) Dictionary(字典) Python字符串 String(字符串)是Python中最

Python——追加学习笔记(二)

文件处理 # 文件内移动 seek()方法可以在文件中移动文件指针到不同的位置,offset字节代表相对于某个位置偏移量,默认为0,代表从文件开头算起,1代表从当前位置算起,2代表从文件末尾算起. seek()经常用来重设文件位置指针. eg. >>> f.name 'anaconda-ks.cfg' >>> f.next() '#version=DEVEL\n' >>> f.next() '# System authorization informa

python之数据类型(学习笔记二)

python之数据类型(学习笔记二) 在Python中,能够直接处理的数据类型有以下几种: (1)整数 Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例 如: 1 , 100 , ‐8080 , 0 ,等等. 计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用 0x 前缀和0-9,a-f表示,例 如: 0xff00 , 0xa5b4c3d2 ,等等. (2)浮点数 浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时

Python学习笔记<二>:列表、元组、字典

1 列表和元组 可以将列表和元组当成普通的"数组",它能保存任意数量任意类型的Python 对象.和数组一样,通过从0 开始的数字索引访问元素,但是列表和元组可以存储不同类型的对象. 列表和元组有几处重要的区别.列表元素用中括号( [ ])包裹,元素的个数及元素的值可以改变.元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以).元组可以看成是只读的列表.通过切片运算( [ ] 和 [ : ] )可以得到子集,这一点与字符串的使用方法一样. 举例如下: >>>

Java学习笔记二:数据类型

Java学习笔记二:数据类型 1. 整型:没有小数部分,允许为负数,Java整型分4种:int short long byte 1.1 Int最为常用,一个Int类型变量在内存中占用4个字节,取值范围从-2 147 483 6至2 147 483 647 超过20亿,如果用来存储大于20亿的值,最好使用long型. 1.2  int 与Integer: Java中的数据类型分为基本数据类型和复杂数据类型.Int为前者,integer为后者. Integer是int的封装类,提供了很多转换方法,当

小猪的数据结构学习笔记(二)

小猪的数据结构学习笔记(二) 线性表中的顺序表 本节引言: 在上个章节中,我们对数据结构与算法的相关概念进行了了解,知道数据结构的 逻辑结构与物理结构的区别,算法的特性以及设计要求;还学了如何去衡量一个算法 的好坏,以及时间复杂度的计算!在本节中我们将接触第一个数据结构--线性表; 而线性表有两种表现形式,分别是顺序表和链表;学好这一章很重要,是学习后面的基石; 这一节我们会重点学习下顺序表,在这里给大家一个忠告,学编程切忌眼高手低,看懂不代表自己 写得出来,给出的实现代码,自己要理解思路,自己

Android学习笔记二

17. 在ContentProvider中定义的getType()方法是定义URI的内容类型. 18. SQLiteDatabase类中的insert/delete/update/query方法其实也挺好用的,我在EquipmentProvider类中做了实现 19. Android专门有个单元测试项目(Android Test Project),在这个项目中,可以新建一个继承AndroidTestCase类的具体测试类来单元测试某个功能.我新建了一个AndroidTestProject项目,在

C++学习笔记之数据类型

一.变量名 几条简单的C++命名规则: 在名称中只能使用字母,数字和下划线 名称的第一个字符不能是数字 区分大小写 不能将C++关键字用作名称 以两个下划线和大写字母打头的名称被保留给实现(编译器及其使用资源)使用.以一个下划线开头的名称被保留给实现,用作全局标识符. C++对名称长度没有限制 二.数据类型 计算机内存的最基本单元是位(bit).字节(byte)通常指的是8位内存单元,可以表示的范围0-255或者-128到127. (1)整型 short至少16位(大多数系统16位,-32768