python学习手册中的一些易忘的点(前三部分)
1.ubuntu下让python脚本可直接运行:
test.py文件(后缀可省)
#!/usr/bin/python
print('wwwww')
sudo chmod +x ./test.py (sudo chmod 755 ./2)
执行./test.py即可
可添加为快捷方式:
sudo ln -s /home/zh/桌面/test.py /usr/bin/test
执行test
2.取出0-20中,能够被3整除的数(列表解析)
>>> [x for x in range(0,20) if x % 3 ==0]
[0, 3, 6, 9, 12, 15, 18]
>>>
3.运行一个脚本
>>> a="{1:1,2:2,'1':22}"
>>> eval(a)
{'1': 22, 1: 1, 2: 2}
>>> b=eval(a)
>>> type(b)
<type 'dict'>
>>> eval('list("qqqqqqqqqqq")')
['q', 'q', 'q', 'q', 'q', 'q', 'q', 'q', 'q', 'q', 'q']
4.字符与数字转换
>>> chr(115)
's'
>>> ord('c')
99
5.字符串格式化
>>> 'aaaa %s bbbbb %s ccccc' % (1,2)
'aaaa 1 bbbbb 2 ccccc'
>>>
>>> t='{}+{}={}'.format(1,2,3)
>>> t
'1+2=3'
>>>
6.字典与列表解析
>>> dict([(1,1),(2,2)])
{1: 1, 2: 2}
>>> zip([1,2,3],[1,2,3])
[(1, 1), (2, 2), (3, 3)]
>>> {a:b*2 for (a,b) in [(1, 1), (2, 2), (3, 3)]}
{1: 2, 2: 4, 3: 6}
>>>
7.对象序列化/保存到文件
>>> dic = {'age': 23, 'job': 'student','11':[1,2,3,4]}
>>> byte_data = pickle.dumps(dic)
>>> byte_data
"(dp0\nS'11'\np1\n(lp2\nI1\naI2\naI3\naI4\nasS'age'\np3\nI23\nsS'job'\np4\nS'student'\np5\ns."
>>> obj = pickle.loads(byte_data)
>>> obj
{'11': [1, 2, 3, 4], 'age': 23, 'job': 'student'}
>>>
#到文件
>>> with open('abc.pkl', 'wb') as f:
... dic = {'age': 23, 'job': 'student'}
... pickle.dump(dic, f)
...
>>> with open('abc.pkl', 'rb') as f:
... aa = pickle.load(f)
... print(aa)
... print(type(aa)) # <class 'dict'>
...
{'age': 23, 'job': 'student'}
<type 'dict'>
用户自定义对象
序列化用户自定义对象
假如我写了个类叫做Person
class Person:
def __init__(self, name, age, job):
self.name = name
self.age = age
self.job = job
def work(self):
print(self.name, 'is working...')
pickle当然也能写入,不仅可以写入类本身,也能写入它的一个实例。
# 将实例存储在变量中,当然也能存在文件中
a_person = Person('abc', 22, 'waiter')
person_abc = pickle.dumps(a_person)
p = pickle.loads(person_abc)
p.work()
# 将类本身存储在变量中,loads的时候返回类本身,而非它的一个实例
class_Person = pickle.dumps(Person)
Person = pickle.loads(class_Person)
p = Person('Bob', 23, 'Student')
p.work()
# 下面这个例子演示的就是将类存储在文件中
# 序列化
with open('person.pkl', 'wb') as f:
pickle.dump(Person, f)
# 反序列化
with open('person.pkl', 'rb') as f:
Person = pickle.load(f)
aa = Person('gg', 23, '6')
aa.work()
更多json,shelve序列化参考这里[Python序列化和反序列化]
8.实现类似python3的打印
>>> from __future__ import print_function
>>> for line in open('/home/zh/桌面/笔记'):print(line,'')
打印重定向
import sys
f=open('test.txt','a+')
a='123'
b='456'
print >> f,a,b
f.close()
--------------
import sys
f=open('a.txt','w')
old=sys.stdout #将当前系统输出储存到临时变量
sys.stdout=f #输出重定向到文件
print 'Hello World!' #测试一个打印输出
sys.stdout=old #还原系统输出
f.close()
print open('a.txt','r') # 错误的方法,仅用于查看输出,了解python
print open('a.txt','r').read()
9.赋值语句中进行条件判断
>>> c='1111122222333334444455555'
>>> d=c[:5]+'#'+c[5:] if len(c)<5 else (c[:5]+'#'+c[5:10]+'#'+c[10:] if len(c)==15 else (c[:5]+'#'+c[5:10]+'#'+c[10:15]+'#'+c[15:] if len(c)==20 else (c[:5]+'#'+c[5:10]+'#'+c[10:15]+'#'+c[15:20]+'#'+c[20:] if len(c)==25 else 3)))
>>> d
'11111#22222#33333#44444#55555'
>>>
10.zip与map,enumerate
>>> a
[1, 2, 3]
>>> b
[5, 6, 7]
>>> zip(a,b)
[(1, 5), (2, 6), (3, 7)]
>>> type(zip(a,b))
<type 'list'>
>>> map(chr,a)
['\x01', '\x02', '\x03']
>>> p=['1','2','3']
>>> enumerate(p)
<enumerate object at 0x7f93e36688c0>
>>> type(enumerate(p))
<type 'enumerate'>
>>> for ii in enumerate(p):print(ii)
...
(0, '1')
(1, '2')
(2, '3')
>>> n=enumerate(p)
>>> next(n)
(0, '1')
>>>
11.获取帮助
dir(sys)
help(sys)
python学习手册中的一些易忘的点(前三部分)的更多相关文章
- python学习手册中的一些易忘的点(第4部分)
1.python函数高聚合低耦合1)对于输入使用参数并且对于输出使用return2)只有在真正必要的情况下使用全局变量3)不要改变可变类型的参数,除非调用者希望这样做4)每个函数都应该有一个单一的.统 ...
- 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」
0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...
- Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘
Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...
- Python学习手册(第4版)PDF高清完整版免费下载|百度云盘
Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...
- [python学习手册-笔记]003.数值类型
003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...
- 《Python学习手册》读书笔记
之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...
- 《Python学习手册》读书笔记【转载】
转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...
- 《Python学习手册》(二)
<Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...
- 参考学习《Python学习手册(第4版)》高清中文PDF+高清英文PDF+源代码
看到第38章了,整体感觉解释详细,例子丰富:关于Python语言本身的讲解全面详尽而又循序渐进不断重复,同时详述语言现象背后的机制和原理:除语言本身,还包含编程实践和设计以及高级主题.边看边写代码.不 ...
随机推荐
- Postman—构建工作流
前言 在使用“Collection Runner”的时候,集合中的请求执行顺序就是请求在Collection中的显示排列顺序.但是,有的时候我们不希望请求按照这样的方式去执行,可能是执行完第一个请求, ...
- android 使用lint + studio ,排查客户端无用string,drawable,layout资源
在项目中点击右键(或者菜单中的Analyze),在出现的右键菜单中有“Analyze” --> “run inspaction by Name ...”.在弹出的搜索窗口中输入想执行的检查类型, ...
- 分区助手官网使用教程(专业版、绿色版和WinPE版)(图文详解)
不多说,直接上干货! 详情见 http://www.disktool.cn/jiaocheng/index.html http://www.disktool.cn/jiaocheng/index2.h ...
- C/C++ -- Gui编程 -- Qt库的使用 -- 使用小写qDebug调试程序
qDebug作为printf不需要头文件 qDebug()作为cout要使用头文件<QDebug> -----debug.cpp----- -----debug.cpp----- #inc ...
- YAOLEI
http://www.cnblogs.com/skyblue/p/3356933.html
- [BJOI 2018]求和
Description 题库链接 给你一棵 \(n\) 个结点的有根树, \(m\) 次询问这棵树上一段路径上所有节点深度的 \(k\) 次方和. \(1\leq n\leq 300000,1\leq ...
- 点击一个元素,触发另一个元素的click事件
- xcode 调试器 LLDB
本文完全转载,转载地址:点击这里 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函 ...
- 【原】Docker入门之Centos7.0+安装
服务器配置:1核2G 40G 硬盘,Centos 7.4. 以下全程是在 root 用户下操作: 1.卸载旧版本 yum remove docker \ docker-client \ docker- ...
- python 中迭代和遍历的区别
什么是迭代? 迭代就是重复运行一段代码语句块的能力.分为两种方式 使用递归函数 使用循环(for 或 while 循环) 假设有个需求,要按照降序打印10以下(包括10),0 以上的整数,用递归和循环 ...