首页 > 技术文章 > Python3基础(2)模块、数据类型及运算、进制、列表、元组、字符串操作、字典

deeplearning1314 2019-05-13 08:31 原文

---------------个人学习笔记---------------

----------------本文作者疆--------------

------点击此处链接至博客园原文------

 

1.模块(标准库/第三方库)

import xxx时首先在当前目录中找,然后去Python环境变量中找。

-----sys模块-----(sys模块python解释器自带的用纯C写的)

print(sys.path) 打印Python的环境变量

print(sys.argv) 打印当前文件相对路径,在Pycharm中会打印绝对路径(在终端中会打印相对路径)

print(sys.argv[xx]) 打印输入的第xx个参数  如终端中输入 python  1.py 1 2,则argv[0]为1.py argv[1]为1...

-----os模块(系统交互)-----

os.system("dir")   打印当前目录,返回值为0(只执行命令,不保存结果)

os.poen("dir) .read()  当前目录结果,os.poen("dir)为内存对象地址

os.mkdir("xxx") 当前目录中创建新的目录

2.Python执行过程及pyc(c即compil)介绍

Python实际上和Java一样也是一门先编译后解释的语言,如执行Python helloworld.py时首先激活Python解释器,但在解释之前,需要先编译。内存中的PyCodeObject是Python编译器真正编译得到的结果,当Python程序运行结束时,Python解释器会将PyCodeObject写回pyc文件中。当Python程序第二次运行时,首先会在硬盘中寻找pyc文件,如果找到(会判断.py和.pyc更新时间,判断.py是否被更改),则直接载入,否则重复上面过程。

3.数据类型

数字:int、long(Python2的长整型未指定位宽,但会受内存限制,Python3只有int没有long)、float、complex(复数,工程领域才会用到)

布尔类型 True False

4.数据运算(51cto 跟Alex学Python之Python开发基础-1 7)

5.三元运算

result = 值1 if 条件 else 值2

6.进制与bytes类型(字节/2进制)

16进制可用字母H后缀表示,也可用0x前缀(零)表示。

Python3最重要的新特性是对文本和2进制数据做出更清晰的区分,文本总是Unicode,由str类型表示,2进制则由bytes类型表示,Python3中不能拼接字符串和字节包,也不能在字节包里搜索字符串(Python2中无此限制)。

2进制转字符串--------decode        socket网络编程--------字符串转2进制(Python2可以通过网络传输字符串,但Python3只能通过bytes类型传输数据) encode

若未指定编码格式,则Python2为系统默认编码,Python3默认Utf-8编码,具体可查当前版本中函数Declaration。

注意:2进制转16进制又稍有不同,详情可点击

7.列表(列表支持增、删、查、改

切片操作(顾头不顾尾、最后一个位置从末尾开始数索引为-1、步长默认为1、步长为正时切片头数要比尾数小、头尾省略表示从开始/末尾取)

列表追加元素 append(元素)   末尾追加

列表插入元素 insert(index,元素)

列表删除元素 remove(元素) 、del 列表名[index]、pop(index) pop中index为空时则删除列表最后一个元素

列表查询元素 index(元素)

列表查询相同元素个数 count(元素)

清空列表 clear() 列表将变为[]空列表 而del会使列表不存在

翻转列表 reverse()

排序列表 sort() 按首字母ASCII码顺序

扩展列表 列表1.extend(列表2)

复制列表 (有点难!有点绕)

----------浅copy(只copy列表第一层)---------

---------------------其余三种浅copy:copy.copy()、a_list[:]、list(a_list)-----------------------------

-------------------列表变量赋值相等,不会copy任何,跟着改------------------------------------------

----------这里需要联系普通变量(字符串、数字)赋值相等情形再研究一下,内存指针-------

--------------------------深copy(各层copy)---------------------------------------

import copy

copy.copy(xxx)等效于浅copy

copy.deepcopy()为深copy

8.元组(元组不可修改,只读列表

只有count和index两个方法,元组为(),列表为[]。

9.isdigit()函数判断变量是否为数字,不管变量数据类型如何。

10.enumerate()枚举函数 常见用法  for i,j in enumerate(xxx):

11.exit()函数退出当前程序。

12.\033[31;1m...\033[0m  ...中为%s、%d等格式输出,表示31输出红色字体、41输出红色背景字体。

13.字符串操作

capitalize() 首字母变大写,其余字母变小写

count() 统计字符串中某字母出现次数

center(50,"-") 如:一共打印50个字符,令字符串居中,其余用-补足

endswith() 判断是否以xx结尾,返回bool值

expandtabs(tabsize=30) 如:将字符串中的\t转成30个空格

find() 在字符串中查找返回首次出现的索引

format() 格式输出

format_map 格式输出,传入字典,很少使用

isalnum() 判断是否为阿拉伯数字/字母(不含空格等字符)

isalpha() 判断是否为纯英文字符

isdecimal() 判断是否为10进制

isidentifier() 判断是否为一个合法的标识符,即变量名是否合法

islower() 判断其中字母是否为小写,可以包含数字等字符

isnumeric() 判断是否为数字和isdigit()应该没区别

isspace()  判断是否为空格

istitle() 判断是否每个首字母大写,如My Girlfriend Is返回True

isupper() 判断是否每个字母大写

join() 如“+”.join(['1','2','3']])则返回1+2+3

ljust(50,"*") 在字符串后补充*直至50个字符

rjust(50,"*") 在字符串前补充*直至50个字符

lower() 大写变小写

upper() 小写变大写

lstrip()  去除字符串左边的空格和回车

rstrip()  去除字符串右边的空格和回车

strip()  去除字符串两边的空格和回车

maketrans() 加密   用法:p = str.maketrans("abc","123")    print(cba".translate(p))   # 输出321

replace("x","y",1) 将字符串中的x替换为y,替换次数为1,执行replace后原有字符串值未被修改,返回的修改后的字符串可赋给新的变量

rfind(“x”) 查找字符串中最右边的x返回其索引

split() 字符串分割为列表,默认为空格

splitlines() 按换行分割字符串为列表,相当于split("\n")

swapcase() 大写变小写。小写变大写

title() 首字母变大写 my name变为My Name

zfill(50) 字符串左边补0直至50个字符

14.字典(字典是无序的,key必须唯一)

删除 del dict_of_info["No001"]、dict_of_info.pop("No001") pop删除必须指定key  无remove方法  dict_of_info.popitem() 随机删除不需指定key

查找 dict_of_info["No005"]由于不存在会报错,dict_of_info.get("No005")不存在则返回None, 安全获取的方法

判断字典是否存在某key  (Python2)  dict_of_info.has_key("No001")        (Python3)   print("No001" in dict_of_info)

多级字典、列表嵌套使用

values()  返回字典所有值

keys()  返回字典所有键

setdefault(键,值)  增加字典新元素,但若该键已存在则不增加

字典1.update(字典2)  合并更新字典1,若键同时存在于两个字典,以字典2为主

items() 将字典转为列表,列表中各个元素对应1组键-值对

dict.fromkeys(键列表,值)  如:dict.fromkeys([1,2,3], "test") 得到的字典其值是一样的。

函数说明:fromkeys(iterable[,value=None]) 

iterable  用于创建新的字典的键的可迭代对象(字符串、列表、元组、字典)

value     可选参数, 字典所有键对应同一个值的初始值,默认为None

 ------------------------------循环字典----------------------------

方式一:for k,v in dict_of_info.items():  print(k,v)        多了字典转列表的工作,相对会耗时

方式二:for i in dict_of_info:  print(i, dict_of_info[i])     推荐使用方式二

 

推荐阅读