Python3基础(2)模块、数据类型及运算、进制、列表、元组、字符串操作、字典
---------------个人学习笔记---------------
----------------本文作者吴疆--------------
------点击此处链接至博客园原文------
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]) 推荐使用方式二

Python3基础(2)模块、数据类型及运算、进制、列表、元组、字符串操作、字典的更多相关文章
- 跟着ALEX 学python day2 基础2 模块 数据类型 运算符 列表 元组 字典 字符串的常用操作
声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 模块初始: Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ...
- Day2 - Python基础2 列表、字符串、字典、集合、文件、字符编码
本节内容 列表.元组操作 数字操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 ...
- python基础之 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...
- asp.net AES加密跟PHP的一致,将加密的2进制byte[]转换为16进制byte[] 的字符串获得
<?php class AESUtil { public static function encrypt($input, $key) { $size = mcrypt_get_block_siz ...
- Python3基础语法和数据类型
Python3基础语法 编码 默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为原码文件制定不同的编码: # -*- coding: 编码 -*- 标 ...
- 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)
1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...
- 【Java基础】14、位运算之——按位与(&)操作——(快速取模算法)
学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 ...
- 位运算 进制转化 STL中bitset用法
2017-08-17 16:27:29 writer:pprp /* 题目名称:输入十进制以二进制显示 程序说明:同上 作者:pprp 备注:无 日期:2017/8/17 */ #include &l ...
- python 基础篇 04(列表 元组 常规操作)
本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...
- Day 07 数据类型的内置方法[列表,元组,字典,集合]
数据类型的内置方法 一:列表类型[list] 1.用途:多个爱好,多个名字,多个装备等等 2.定义:[]内以逗号分隔多个元素,可以是任意类型的值 3.存在一个值/多个值:多个值 4.有序or无序:有序 ...
随机推荐
- js函数篇
1.闭包函数,作用:不污染全局变量, 定义:与外界隔离的独立作用域被称为闭包,使用函数实现该功能称为函数闭包: 写法: (function(){ function sayHello(){ conso ...
- AD9各种布线总结
1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...
- python编程范式培训文档,主要是结合4种代码和,对oop和面向过程编程区别和oop转化公式培训。
这是写得培训文档.代码例子在附件. 是经过深入考察 4个git项目里面,找出代码非常非常十分low.代码重复得吓人的的最本质原因.提炼出oop转化公式. 围绕附件中的4种代码写法思维来实现同一个任务, ...
- stm32与三菱PLC通信
一.三菱PLC通讯概要 三菱PLC FX系列通信结构如下图所示: 三菱PLC FX系列的通信规格如下图所示: 三菱PLC FX系列一般有以下几种通信模块,以FX2N为例: FX2N-232-BD ...
- mysql查询语句in和exists二者的区别和性能影响
mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询.一直大家都认为exists比in语句的效率要高,这种说法其实是不准确的 ...
- 使用mahout fpgrowth算法求关联规则
使用mahout fpgrowth 首先,这篇文章的内容大部分取自国外一篇博客Finding association rules with Mahout Frequent Pattern Mining ...
- 5、bam格式转为bigwig格式
1.Bam2bigwig(工具) https://www.researchgate.net/publication/301292288_Bam2bigwig_a_tool_to_convert_bam ...
- JavaScript学习系列7 -- JavaScript中的运算符
今天,我们来说一说JavaScript中的运算符,首先我们来讲一讲 一元运算符 JavaScript中的一元运算符有以下几种 1. delete delete 运算符主要用于删除对以前定义的对象属性或 ...
- 面试题18(一):在O(1)时间删除链表结点
// 面试题18(一):在O(1)时间删除链表结点 // 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该 // 结点.链表结点与函数的定义如下: // struct Lis ...
- SQL Server 查询分析器提供的所有快捷方式(快捷键)
SQL Server程序员经常要在SSMS(SQL Server Management Studio)或查询分析器(2000以前)中编写T-SQL代码.以下几个技巧,可以提升工作效率. 以下说明以SS ...