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

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

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

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右击事件

    先贴代码: <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF ...

  2. 学习Web前端的好网站推荐

    说明:将其他技术技术网址也搜藏到下面,与君共同进步 1.Jquery专题 http://kb.cnblogs.com/zt/jquery/ 2.Entity Framwork专题 http://kb. ...

  3. hbase java API跟新数据,创建表

    package hbaseCURD; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import o ...

  4. JavaScript代码存放位置

    JavaScript代码存放位置 HTML的head中 HTML的body代码块底部(推荐) 由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置 ...

  5. C++经典问题:狐狸找兔子

    问题描述: 围绕着山顶有10个洞,一只狐狸和一只兔子住在各自的洞里.狐狸想吃掉兔子.一天,兔子对狐狸说:"你想吃我有一个条件,先把洞从1-10编上号,你从10号洞出发,先到1号洞找我:第二次 ...

  6. ARC097C K-th Substring

    传送门 题目 You are given a string s. Among the different substrings of s, print the K-th lexicographical ...

  7. [MySQL] Data too long for column 'title' at row 1

    李刚轻量级JavaEE第六章的坑..艹李刚自己有没试过这些代码的啊,6.4这一份HqlQuery.java里需要的表,根本就跟他提供的sql脚本对不上啊..坑爹啊,而且字符编码集也有问题. 出现这个原 ...

  8. WebGL three.js学习笔记 6种类型的纹理介绍及应用

    WebGL three.js学习笔记 6种类型的纹理介绍及应用 本文所使用到的demo演示: 高光贴图Demo演示 反光效果Demo演示(因为是加载的模型,所以速度会慢) (一)普通纹理 计算机图形学 ...

  9. Python中配置文件解析模块-ConfigParser

    Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置).配置文件的格式是: []包含的叫section, section 下有option=value ...

  10. remap——ROS中修改订阅的节点名称

    跑数据集或者使用不同传感器时,难免会遇到需要修改topic名称的时候,此时可以有两种做法. 一.直接修改源码.如果有launch文件,则修改launch文件对应的topic 二.直接进行remap操作 ...