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

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

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

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. 使用tftp给ARM下载程序

    使用tftp给ARM下载程序 1.开发板和主机能够ping的通 前提:要把计算机的防火墙关了,不然就会出现下面这种情况 如果电脑连接的无线网,那么设置本地连接的ip设置为固定ip.Ip地址和开发的ip ...

  2. Oracle数据库安全性设计

    一.什么是安全的系统 安全性建设是一个长期并且卓绝的工作.作为一个符合标准的企业级系统,我们认为税务系统应该具备以下的安全性特点: ◆高可用性 ◆对敏感数据的访问控制能力. ◆监测用户行为的审计能力. ...

  3. 用python做的windows和linx文件夹同步。解决自动同步、加快传输大量小文件的速度、更丰富的文件上传过滤设置。

    现在工具不好用,用的pycharm自动同步,但对于git拉下来的新文件不能自动上传到linux,只有自己编辑过或者手动ctrl + s的文件才会自动同步.导致为了不遗漏文件,经常需要全量上传,速度非常 ...

  4. stm32之内部功能

    本文将提到以下内容: 位带操作 中断 printf重定向 随机数发生器RNG AD/DA DMA 高性能计算能力 加密 ART加速 一.位带操作 在学习51单片机的时候就使用过位操作,通过关键字sbi ...

  5. Project Server 2016 RestAPI调用测试

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  6. 问题:c# newtonsoft.json使用;结果:Newtonsoft.Json 用法

    Newtonsoft.Json 用法 Newtonsoft.Json 是.NET 下开源的json格式序列号和反序列化的类库.官方网站: http://json.codeplex.com/ 使用方法 ...

  7. 2.JasperReports学习笔记2-创建简单的报表例子

    转自:http://www.blogjava.net/vjame/archive/2013/10/12/404908.html 一.创建简单的jrxml文件 这里可以手动创建jrxml文件,也可以使用 ...

  8. R语言系列:数据的基本运算

    基本运算符号  1.基本数学计算  +.-.*./.^.%%(求模).%/%(整除)  注意:求模运算两边若为小数,则整数和小数部分分别求模.例:5.6%%2.2  2.比较运算  >.< ...

  9. web 系统原理之路由器和交换机的区别

    工作层次不同: 交换机主要工作在数据链路层(第二层) 路由器工作在网络层(第三层). 转发依据不同: 交换机转发所依据的对象时:MAC地址.(物理地址) 路由转发所依据的对象是:IP地址.(网络地址) ...

  10. 16.CTF综合靶机渗透(九)

    Boot2root challenges aim to create a safe environment where you can perform real-world penetration t ...