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

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

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

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)模块、数据类型及运算、进制、列表、元组、字符串操作、字典的更多相关文章

  1. 跟着ALEX 学python day2 基础2 模块 数据类型 运算符 列表 元组 字典 字符串的常用操作

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  模块初始: Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相 ...

  2. Day2 - Python基础2 列表、字符串、字典、集合、文件、字符编码

    本节内容 列表.元组操作 数字操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 ...

  3. python基础之 列表、元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码

    本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 1. 列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义列表 ...

  4. asp.net AES加密跟PHP的一致,将加密的2进制byte[]转换为16进制byte[] 的字符串获得

    <?php class AESUtil { public static function encrypt($input, $key) { $size = mcrypt_get_block_siz ...

  5. Python3基础语法和数据类型

    Python3基础语法 编码 默认情况下,Python3源文件以UTF-8编码,所有字符串都是unicode字符串.当然你也可以为原码文件制定不同的编码: # -*- coding: 编码 -*- 标 ...

  6. 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)

    1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...

  7. 【Java基础】14、位运算之——按位与(&)操作——(快速取模算法)

    学习redis 字典结构,hash找槽位 求槽位的索引值时,用到了 hash值 & sizemask操作, 其后的scan操作涉及扫描顺序逻辑,对同模的槽位 按一定规则扫描! 其中涉及位运算 ...

  8. 位运算 进制转化 STL中bitset用法

    2017-08-17 16:27:29 writer:pprp /* 题目名称:输入十进制以二进制显示 程序说明:同上 作者:pprp 备注:无 日期:2017/8/17 */ #include &l ...

  9. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

  10. Day 07 数据类型的内置方法[列表,元组,字典,集合]

    数据类型的内置方法 一:列表类型[list] 1.用途:多个爱好,多个名字,多个装备等等 2.定义:[]内以逗号分隔多个元素,可以是任意类型的值 3.存在一个值/多个值:多个值 4.有序or无序:有序 ...

随机推荐

  1. js函数篇

    1.闭包函数,作用:不污染全局变量,  定义:与外界隔离的独立作用域被称为闭包,使用函数实现该功能称为函数闭包: 写法: (function(){ function sayHello(){ conso ...

  2. AD9各种布线总结

    1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...

  3. python编程范式培训文档,主要是结合4种代码和,对oop和面向过程编程区别和oop转化公式培训。

    这是写得培训文档.代码例子在附件. 是经过深入考察 4个git项目里面,找出代码非常非常十分low.代码重复得吓人的的最本质原因.提炼出oop转化公式. 围绕附件中的4种代码写法思维来实现同一个任务, ...

  4. stm32与三菱PLC通信

    一.三菱PLC通讯概要   三菱PLC FX系列通信结构如下图所示: 三菱PLC FX系列的通信规格如下图所示: 三菱PLC FX系列一般有以下几种通信模块,以FX2N为例: FX2N-232-BD ...

  5. mysql查询语句in和exists二者的区别和性能影响

    mysql中的in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询.一直大家都认为exists比in语句的效率要高,这种说法其实是不准确的 ...

  6. 使用mahout fpgrowth算法求关联规则

    使用mahout fpgrowth 首先,这篇文章的内容大部分取自国外一篇博客Finding association rules with Mahout Frequent Pattern Mining ...

  7. 5、bam格式转为bigwig格式

    1.Bam2bigwig(工具) https://www.researchgate.net/publication/301292288_Bam2bigwig_a_tool_to_convert_bam ...

  8. JavaScript学习系列7 -- JavaScript中的运算符

    今天,我们来说一说JavaScript中的运算符,首先我们来讲一讲 一元运算符 JavaScript中的一元运算符有以下几种 1. delete delete 运算符主要用于删除对以前定义的对象属性或 ...

  9. 面试题18(一):在O(1)时间删除链表结点

    // 面试题18(一):在O(1)时间删除链表结点 // 题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该 // 结点.链表结点与函数的定义如下: // struct Lis ...

  10. SQL Server 查询分析器提供的所有快捷方式(快捷键)

    SQL Server程序员经常要在SSMS(SQL Server Management Studio)或查询分析器(2000以前)中编写T-SQL代码.以下几个技巧,可以提升工作效率. 以下说明以SS ...