Python学习记录day2
2016-11-20 00:00
225 查看
今天,跟着Alex喝了心灵的鸡汤:Be a new gentlmen
着装得体
每天洗澡
适当用香水
女士优先
不随地吐痰、不乱扔垃圾、不在人群中抽烟
不大声喧哗
不插队、碰到别人要说抱歉
不在地铁上吃东西
尊重别人的职业和劳动
尊重别人隐私,不随便打听别人工资
与人保持安全距离(1米)
多去旅行,一年至少一个国家
多看书,电影,一年15本书,50+部电影
学好英语
保持不甘心、保持正能量
做事件一定要学会换位思考,要想此事会不会给别人造成不好的困扰
积极影响身边的人
推荐读书
《三体》
《百年孤独》
常量:用全部大写字母命名变量名
引入模块:
安装模块:
os模块执行系统命令:
.pyc是什么?
Python是一门基于虚拟机的语言,pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的。
数据类型
1.数字
int(整型)
32位系统:-2**31-1~2**31-1
64位系统:-2**63-1~2**63-1
type()函数用于输出数据类型
long(长整型)
float(浮点型)
2.布尔值
真或假
1或0
3.字符串
推荐使用格式化输出:
PS:字符串是%s;整数是%d;浮点数是%f
+号拼接字符串,效率低,因为其使用了多块内存空间。
字符串
字符串常用功能
移除空白
分割
索引
切片
长度
字符串操作
删除空格
分割字符串
判断是否有空格
首字母大写
格式化输出字符串
切片
查找
按长度填充字符串
字符串是否为数字
字符串是否包含数字、开头、结局是否包含字符
字符串大小写转换
列表
列表基本操作:
索引
切片
追加
删除
长度
切片
循环
包含
切片:取多个元素
切片后再切片
修改列表元素
插入
追加
删除
删除是只删除一个
元素是否在列表中,查找元素个数,查找元素位置
扩展(合并列表)
反序排列元素
元素排序(版本3不支持字符与数字排序)
移除元素(默认移除最后一个元素)
移除指定元素
拷贝
拷贝时,第一层的元素(非列表)不会改变,元素为列表时与变量赋值一样,内存地址不变,所以2个列表内,元素为列表内的元素变化时,2个列表也一起改变
删除列表
元组:不能被修改
基本操作:
索引
切片
循环
长度
包含
数据运算符
和其它语言一样,python也支持进行各种各样的数学和逻辑运算,我们一起来看一些。
python语言支持以下几种运算
算术运算
比较运算
Assignment Operators
二进制运算
关系运算
验证运算
算术运算
比较运算
赋值运算
按位运算(二进制运算)
2个10进制数字的位运算
看下面的运算过程:
逻辑运算符 and 、or 、not
关系运算符 in 、not in
验证运算符 is 、 is not
字典
字典的特性:
dict是无序的
key必须是唯一的,so 天生去重
增加
修改
删除
返回指定键的值,如果值不在字典中返回默认值
更新
返回元组对的列表
以列表返回字典中的所有值
以列表返回一个字典所有的键
key是否存在于字典中
get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值
用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
随机删除一个元素
循环字典(效率低,因为有一个dict to list的转换过程)
本文出自 “ygqygq2” 博客,谢绝转载!
着装得体
每天洗澡
适当用香水
女士优先
不随地吐痰、不乱扔垃圾、不在人群中抽烟
不大声喧哗
不插队、碰到别人要说抱歉
不在地铁上吃东西
尊重别人的职业和劳动
尊重别人隐私,不随便打听别人工资
与人保持安全距离(1米)
多去旅行,一年至少一个国家
多看书,电影,一年15本书,50+部电影
学好英语
保持不甘心、保持正能量
做事件一定要学会换位思考,要想此事会不会给别人造成不好的困扰
积极影响身边的人
推荐读书
《三体》
《百年孤独》
常量:用全部大写字母命名变量名
引入模块:
import os #推荐一行一个
安装模块:
pip install pandas
os模块执行系统命令:
os.system("df") os.popen("ifconfig").read()
.pyc是什么?
Python是一门基于虚拟机的语言,pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的。
数据类型
1.数字
int(整型)
32位系统:-2**31-1~2**31-1
64位系统:-2**63-1~2**63-1
type()函数用于输出数据类型
long(长整型)
float(浮点型)
2.布尔值
真或假
1或0
3.字符串
推荐使用格式化输出:
Y = "test" str = "This is a %s" %Y print (str)
PS:字符串是%s;整数是%d;浮点数是%f
+号拼接字符串,效率低,因为其使用了多块内存空间。
字符串
字符串常用功能
移除空白
分割
索引
切片
长度
字符串操作
删除空格
>>> name="abc " >>> name=name.strip() >>> name 'abc'
分割字符串
>>> user="jim|jack" >>> print(user.split("|")) ['jim', 'jack']
判断是否有空格
>>> name="jim jack" >>> print(' ' in name) True
首字母大写
>>> print(name.capitalize()) Jim jack
格式化输出字符串
>>> msg = "Hello, {name}, I am fine" >>> msg.format(name="Jimme") 'Hello, Jimme, I am fine' >>> msg2="hahaha{0}, dddd{1}" >>> print(msg2.format('Ini',33)) hahahaIni, dddd33
切片
>>> name="This is a test1,and what's your name" >>> print(name[2:7]) is is
查找
>>> print(name.find('test')) 10 >>> print(name.find('tTTTT')) -1
按长度填充字符串
>>> print(name.center(40,'x') ... ) xxThis is a test1,and what's your namexx
字符串是否为数字
>>> age="27" >>> print(age.isdigit()) True
字符串是否包含数字、开头、结局是否包含字符
>>> name = "test01" >>> print(name.isalnum()) True >>> print(name.endswith("df")) False >>> print(name.startswith("df")) False
字符串大小写转换
>>> print(name.upper(),name.lower()) TEST01 test01
列表
列表基本操作:
索引
切片
追加
删除
长度
切片
循环
包含
切片:取多个元素
>>> name = ["abc","jack",1,2,3,4] >>> name[-3:-1] [2, 3] >>> name[-3:0] [] >>> name[-3:] [2, 3, 4] >>> name[:1] ['abc'] >>> name[:2] ['abc', 'jack']
切片后再切片
>>> name[:2][:1][0] 'abc' >>> name[:2][:1][0][1] 'b'
修改列表元素
>>> name[3]="xiaoming" >>> name ['abc', 'jack', 1, 'xiaoming', 3, 4]
插入
>>> name.insert(2,"wangou") >>> name ['abc', 'jack', 'wangou', 1, 'xiaoming', 3, 4]
追加
>>> name.append("mac") >>> name ['abc', 'jack', 'wangou', 1, 'xiaoming', 3, 4, 'mac']
删除
>>> name.remove(3) >>> name ['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac']
删除是只删除一个
>>> name.append("mac") >>> name ['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac', 'mac'] >> name.remove("mac") >>> name ['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac'] >>> print(name[::2]) ['abc', 'wangou', 'xiaoming', 'mac']
元素是否在列表中,查找元素个数,查找元素位置
>>> name ['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac'] >>> print(1 in name) True >>> print(name.count(4)) 1 >>> print(name.index(4)) 5
扩展(合并列表)
>>> name2=["zhangzi","lizi","wangba"] >>> name.extend(name2) >>> print(name) ['abc', 'jack', 'wangou', 1, 'xiaoming', 4, 'mac', 'zhangzi', 'lizi', 'wangba']
反序排列元素
>>> name.reverse() >>> print(name) ['wangba', 'lizi', 'zhangzi', 'mac', 4, 'xiaoming', 1, 'wangou', 'jack', 'abc']
元素排序(版本3不支持字符与数字排序)
>>> name.sort() Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unorderable types: int() < str() >>> name ['lizi', 'mac', 'wangba', 'zhangzi', 4, 'xiaoming', 1, 'wangou', 'jack', 'abc'] >>> name=[1,3,2,4] >>> name.sort() >>> print(name) [1, 2, 3, 4]
移除元素(默认移除最后一个元素)
>>> name.pop() 4 >>> print(name) [1, 2, 3]
移除指定元素
>>> name.pop(1) 2 >>> print(name) [1, 3]
拷贝
>>> name3 = name.copy() >>> print(name3) [1, 3]
拷贝时,第一层的元素(非列表)不会改变,元素为列表时与变量赋值一样,内存地址不变,所以2个列表内,元素为列表内的元素变化时,2个列表也一起改变
>>> name=[1,2,3,[1,2,3,4],4] >>> name2 = name.copy() >>> name2 [1, 2, 3, [1, 2, 3, 4], 4] >>> name[3][2]="TTT" >>> name [1, 2, 3, [1, 2, 'TTT', 4], 4] >>> name2 [1, 2, 3, [1, 2, 'TTT', 4], 4] >>> name[2]="AAA" >>> name [1, 2, 'AAA', [1, 2, 'TTT', 4], 4] >>> name2 [1, 2, 3, [1, 2, 'TTT', 4], 4]
删除列表
>>> del name2 >>> name2 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'name2' is not defined
元组:不能被修改
基本操作:
索引
切片
循环
长度
包含
>>> r=(1,2,3,4,5) >>> r (1, 2, 3, 4, 5) >>> type(r) <class 'tuple'> >>> r[2]=1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
数据运算符
和其它语言一样,python也支持进行各种各样的数学和逻辑运算,我们一起来看一些。
python语言支持以下几种运算
算术运算
比较运算
Assignment Operators
二进制运算
关系运算
验证运算
算术运算
运算符 | 描述 | 示例 |
+ | 加法运算 | a + b 得 30 |
- | 减法运算 | a - b 得 -10 |
* | 乘法运算 | a * b 得 200 |
/ | 除法运算 | b / a 得 2 |
% | 取模 - 将%号左边的值除以%号右边的值并且将得到的结果的余数返回 | 10%5得0 ,10%3 得1, 20%7 得6 |
** | 幂 - 返回x的y次幂,就是返回多少次方 | 2**8 得256 |
// | 取整除 - 返回x除以y的商的整数部分 | 9//2得4 , 9.0//2.0得4.0 |
运算符 | 描述 | 示例 |
== | 判断两个对象是否相等 | (a == b) is not true. |
!= | 判断两个对象是否不相等 | (a != b) is true. |
<> | 判断两个对象是否不相等 | (a <> b) is true. 与 != 运算符一样. |
> | 大于 - 返回a是否大于b | (a > b) is not true. |
< | 小于 - 返回a是否小于b | (a < b) is true. |
>= | 大于等于 - 返回a 是否大于等于b | (a >= b) is not true. |
<= | 小于等于 - 返回a 是否小于等于b | (a <= b) is true. |
运算符 | 描述 | 示例 |
= | 赋值 - 将右边的值赋值给左边的变量名 | c = a + b 将会把a+b的结果赋值给c |
+= | 自加赋值 - 将+=号左边的值与+=号右边的值相加,然后再把结果赋值给+=号左右的值 | c += a相当于 c = c + a |
-= | 自减赋值 | c -= a相当于 c = c - a |
*= | 自乘赋值 | c *= a 相当于 c = c * a |
/= | 自除赋值 | c /= a 相当于 c = c / a |
%= | 自取模赋值 | c %= a 相当于 c = c % a |
**= | 自求幂赋值 | c **= a 相当于 c = c ** a |
//= | 自取整赋值 | c //= a 相当于 c = c // a |
二进制位数 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
每位所代表的数字 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
60 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
13 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
运算符 | 描述 | 示例 |
& | 与运算,这个二进制位必须在2组数中都为真,结果才返回真 | (a & b)得12,二进制位: 0000 1100 |
| | 或运算,这个二进制位只需在其中一组数据中为真即返回真 | (a | b)得 61,二进制位: 0011 1101 |
^ | 异或运算,只要这个二进制位在两组数据中不相同就返回真 | (a ^ b)得 49 ,二进制位: 0011 0001 |
<< | 左移运算,将a整体向左移2位 | a << 2得240,二进制位: 1111 0000 |
>> | 右移运算,将a整体向左移3位 | a >> 3得 7 ,二进制位: 0000 0111 |
二进制位 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 结果 |
每位所代表的数字 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |
60 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | |
13 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | |
&与运算 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 12 |
|或运算 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 61 |
^异或运算 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 49 |
a<<2 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 240 |
a>>3 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 7 |
关系运算符 in 、not in
验证运算符 is 、 is not
字典
id_db = { 42342323232: { 'name': "Yangkun", 'age': 23, 'addr': 'Dongbei' }, 23232424224: { 'name': 'Guojin', 'age': 22, 'addr': 'Hubei' } }
字典的特性:
dict是无序的
key必须是唯一的,so 天生去重
增加
>>> id_db[322323232332]={ ... 'name':'Guojia', ... 'age':45, ... 'addr':'Changan' ... } >>> >>> print(id_db) {42342323232: {'addr': 'Dongbei', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'addr': 'Hubei', 'age': 22, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}}
修改
>>> id_db[23232424224]['age']=32 >>> print(id_db) {42342323232: {'addr': 'Dongbei', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'addr': 'Hubei', 'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}}
删除
>>> id_db[23232424224].pop("addr") 'Hubei' >>> print(id_db) {42342323232: {'addr': 'Dongbei', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}}
返回指定键的值,如果值不在字典中返回默认值
>>> tmp = id_db.get(23232424224) >>> print(tmp) {'age': 32, 'name': 'Guojin'}
更新
>>> dic2 = { ... 42342323232: { ... 'name': "Yangkun", ... 'age': 23, ... 'addr': 'Shangdong' ... } ... } >>> id_db.update(dic2) >>> print(id_db) {42342323232: {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}}
返回元组对的列表
>>> print(id_db.items()) dict_items([(42342323232, {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}), (23232424224, {'age': 32, 'name': 'Guojin'}), (322323232332, {'addr': 'Changan', 'age': 45, 'name': 'Guojia'})])
以列表返回字典中的所有值
>>> print(id_db.values()) dict_values([{'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}, {'age': 32, 'name': 'Guojin'}, {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}])
以列表返回一个字典所有的键
>>> print(id_db.keys()) dict_keys([42342323232, 23232424224, 322323232332])
key是否存在于字典中
>>> 42342323232 in id_db True
get()方法类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值
>>> id_db.setdefault(42342323232) {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'} >>> print(id_db) {42342323232: {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}, 23232424224: {'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}, 4: None}
用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
>>> print(dict.fromkeys([1,2,3,4,33,32],"TTTTEST")) {32: 'TTTTEST', 1: 'TTTTEST', 2: 'TTTTEST', 3: 'TTTTEST', 4: 'TTTTEST', 33: 'TTTTEST'}
随机删除一个元素
>>> print(id_db.popitem()) (42342323232, {'addr': 'Shangdong', 'age': 23, 'name': 'Yangkun'}) >>> print(id_db) {23232424224: {'age': 32, 'name': 'Guojin'}, 322323232332: {'addr': 'Changan', 'age': 45, 'name': 'Guojia'}, 4: None}
循环字典(效率低,因为有一个dict to list的转换过程)
>>> for k,v in id_db.items(): ... print(k,v) ... 23232424224 {'age': 32, 'name': 'Guojin'} 322323232332 {'addr': 'Changan', 'age': 45, 'name': 'Guojia'} 4 None
>>> for key in id_db: #效率高 ... print(key,id_db[key]) ... 23232424224 {'age': 32, 'name': 'Guojin'} 322323232332 {'addr': 'Changan', 'age': 45, 'name': 'Guojia'} 4 None
本文出自 “ygqygq2” 博客,谢绝转载!
相关文章推荐
- Python学习记录day2
- Python 学习记录1
- Python 学习记录(1)对象命名导致的问题
- python 学习记录(5)-变量、模块名的命名规则及random模块使用
- python 学习记录(7)-循环/结构化程序(冒泡排序)
- Dive Into Python 学习记录3-getattr 介绍/过滤列表/and or/lambda 函数
- 关于用python的SQLAlchemy访问数据库的学习记录,及SQLAlchemy的安装简介
- python 学习记录(10)-字符串与正则表达式
- python 学习记录(3)—文件操作
- python 学习记录(2)—re 正则表达式模块的使用
- python 学习记录(9)-模块/函数
- Python 学习记录(2) 杯具的GQL
- Python学习记录2
- Python学习(一)——学习资源记录
- python 学习记录(4)—本金+利息计算及简单的游戏猜测程序
- python学习记录
- python学习记录
- python modbus_tk库 学习记录
- python 学习记录(6)-模块导入/变量/常量/注释/语句分隔
- Dive Into Python 学习记录3-对获取某文件夹下MP3文件信息的代码构成分析