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学习手册中的一些易忘的点(前三部分)的更多相关文章

  1. python学习手册中的一些易忘的点(第4部分)

    1.python函数高聚合低耦合1)对于输入使用参数并且对于输出使用return2)只有在真正必要的情况下使用全局变量3)不要改变可变类型的参数,除非调用者希望这样做4)每个函数都应该有一个单一的.统 ...

  2. 读书分享全网学习资源大合集,推荐Python学习手册等三本书「01」

    0.前言 在此之前,我已经为准备学习python的小白同学们准备了轻量级但超无敌的python开发利器之visio studio code使用入门系列.详见 1.PYTHON开发利器之VS Code之 ...

  3. Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘

    Python学习手册(第4版) - 专业程序员的养成完整版PDF免费下载_百度云盘 提取码:g7v1 作者简介 作为全球Python培训界的领军人物,<Python学习手册:第4版>作者M ...

  4. Python学习手册(第4版)PDF高清完整版免费下载|百度云盘

    Python学习手册(第4版)PDF高清完整版免费下载|百度云盘 提取码:z6il 内容简介 Google和YouTube由于Python的高可适应性.易于维护以及适合于快速开发而采用它.如果你想要编 ...

  5. [python学习手册-笔记]003.数值类型

    003.数值类型 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明作者和出 ...

  6. 《Python学习手册》读书笔记

    之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我 ...

  7. 《Python学习手册》读书笔记【转载】

    转载:http://www.cnblogs.com/wuyuegb2312/archive/2013/02/26/2910908.html 之前为了编写一个svm分词的程序而简单学了下Python,觉 ...

  8. 《Python学习手册》(二)

    <Python学习手册>(二) --类型和运算 数字 十六进制 八进制 二进制 0x 0o 0b hex() oct() bin() >>>int('10',2) 2 & ...

  9. 参考学习《Python学习手册(第4版)》高清中文PDF+高清英文PDF+源代码

    看到第38章了,整体感觉解释详细,例子丰富:关于Python语言本身的讲解全面详尽而又循序渐进不断重复,同时详述语言现象背后的机制和原理:除语言本身,还包含编程实践和设计以及高级主题.边看边写代码.不 ...

随机推荐

  1. 有关Hadoop的六大误解

    迄今为止,Hadoop和大数据实际上是同义词.然而随着大数据的炒作不断升温,出现了很多对Hadoop如何应用于大数据的误解. Hadoop是一种用于存储和分析大型数据集开源软件框架,可处理分布在多个现 ...

  2. HTML页面的重绘(repaint)和重流(reflow)

    重流(Reflow)是指布局引擎为frame计算图形的过程. frame是一个矩形,拥有宽高和相对父容器的偏移.frame用来显示盒模型(content model), 但一个content mode ...

  3. android图片压缩总结

    一.bitmap 图片格式介绍 android中图片是以bitmap形式存在的,那么bitmap所占内存,直接影响到了应用所占内存大小,首先要知道bitmap所占内存大小计算方式: bitmap内存大 ...

  4. JS 禁止F12和右键操作控制台

    1.鼠标点击事件 document.onmousedown = function mdClick(event) { var e = event || window.event || arguments ...

  5. GCC 编译 Windows API 程序

    前言 这学期学可视化程序设计,要使用 Windows API 绘制界面,由于笔者的笔记本硬盘太小,无法装臃肿的 VS(主要是不想装),也不想用 VC++ 6.0,所以就选用 GCC 来编译. 安装 m ...

  6. tomcat启动(三)Catalina分析-load方法分析

    load()方法按从上到下顺序分析(主要分析本人所没学过的知识点,其它略过...). Digester类作用 使用sax技术对xml进行解析 未开始解析时Digester.push(this)这个用来 ...

  7. C语言中判断字符串str1是否以str2开始或结束

    #include <stdlib.h> #include <string.h> #include <stdio.h> /**判断str1是否以str2开头 * 如果 ...

  8. Java对象的强、软、弱和虚引用+ReferenceQueue

    Java对象的强.软.弱和虚引用+ReferenceQueue 一.强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会回收它.当内存空间不足 ...

  9. 对于单文本或者div的内容怎么在显示东西过多的情况下实现显示隐藏

    js代码: $(function () { var o = document.getElementById("newsdetail_ArticleContent"); Subt(o ...

  10. 数据库导出Excel(转载)

    来源:https://jingyan.baidu.com/article/3065b3b68f2ab7becef8a449.html SQLServer2005或者SQLServer2008.SQLS ...