【笔记】Python简明教程

Python简明教程,此资源位于http://woodpecker.org.cn/abyteofpython_cn/chinese/ s=u'中文字符' #u表示unicode,使用u之后能正常显示中文 s='''多行文本 这是第二哈''' #'''表示多行注释。也可以用""" 布尔型:True,False docString:文档字符串。eg:

# Filename : nice.py
# encoding:utf8
def printMax(x, y):
    u'''输出两个数字中大的一个。

    两个数字的值必须是整数'''
    x=int(x)
    y=int(y)

    if x>y:
        print x,'is maximum'
    else:
        print y,'is maximum'

printMax(3,5)
print printMax.__doc__

会把中文注释都输出 python使用模块: ·sys模块:

# Filename : nice.py
# encoding:utf8
import sys
for i in sys.argv:
    print i

或者,使用:

# Filename : nice.py
# encoding:utf8
from sys import argv
for i in argv:
    print i

在vim中执行w之后, 执行!python % 123 sdfds 那么将输出123 sdfds(分两行输出) ·使用__main__模块:

# Filename : nice.py
# encoding:utf8
if __name__=='__main__':
    print 'This program is being run by itself'
else:
    print 'I am being imported from another module'

·使用自定义的模块

# Filename : nice.py
# encoding:utf8
import mymodule

mymodule.sayhi()
print 'Version', mymodule.version
# Filename:mymodule.py
# encoding:utf8
def sayhi():
    print 'Hi, this is my module.'
version = '0.1'

数据结构部分: 使用列表list:

# Filename : nice.py
# encoding:utf8
shoplist=['apple','mango', 'carrot', 'banana']
print 'I have', len(shoplist),'items to purchase.'

print 'These items are:',
for item in shoplist:
    print item,

print '\nI alse have to buy rice.'
shoplist.append('rice')
print 'My shopping list is now', shoplist

print 'I will sort my list now'
shoplist.sort()
print 'Sorted shopping list is', shoplist

print 'The first item I will buy is', shoplist[0]
olditem=shoplist[0]
del shoplist[0]
print 'I bought the', olditem
print 'My shopping list is now', shoplist

·元组的使用:类似于数组,但是可以嵌套用

# Filename : nice.py
# encoding:utf8
zoo=('wolf','elephant','penguin')
print 'Number of animals in the zoo is', len(zoo)

new_zoo=('monkey','dolphin',zoo)
print 'Number of animals in the new zoo is', len(new_zoo)
print 'All animals in new zoo are', new_zoo
print 'Animals brought from old zoo are', new_zoo[2]
print 'Last animal brought from old zoo is', new_zoo[2][2]

·使用元组输出(print语句中的参数输出哈哈)

# Filename : nice.py
# encoding:utf8
age=22
name='Swaroop'

print '%s is %d years old' % (name, age)
print 'Why is %s playing with that python' % name

·使用字典(好吧,我表示写过几个不太成功的http post请求的脚本之后,知道什么是字典了。。。)

# Filename : nice.py
# encoding:utf8
ab={'Swaroop':'swaroopch@byteofpyton.info',
        'Larry':'larry@wall.org',
        'Matsumoto':'matz@ruby-lang.org',
        'Spammer':'spammer@hotmail.com'
}
print "Swaroop's address is %s" % ab['Swaroop']

ab['Guido']='guido@python.org'
del ab['Spammer']
print '\nThere are %d contacts in the address-book\n' % len(ab)
for name, address in ab.items():
    print 'Contact %s at %s' % (name, address)

if 'Guido' in ab:
    print "\nGuido's address is %s" % ab['Guido']

·所谓的“索引与切片”,我认为只是玩弄下标的小把戏(包括数组,列表和字符串) ·对象与参考

# Filename : nice.py
# encoding:utf8
print 'Simple Assignment'
shoplist=['apple','mango', 'carrot', 'banana']
mylist=shoplist

del shoplist[0]

print 'shoplist is', shoplist
print 'mylist is', mylist

print 'Copy by making a full slice'
mylist=shoplist[:]
del mylist[0]

print 'shoplist is', shoplist
print 'mylist is', mylist

直接用=赋值,那么两个对象指向同一个存在。(两者是同一事物) 如果使用[:](这应该叫做切片了吧),那么两者为不通的对象 ·几个扩展的字符串方法:

# Filename : nice.py
# encoding:utf8
name ='Swaroop'
if name.startswith('Swa'):
    print 'Yes, the string starts with "Swa"'

if 'a' in name:
    print 'Yes, it contains the string "a"'

if name.find('war') != -1:
    print 'Yes, it contains the string "war"'

delimiter='_*_'
mylist=['Brazil','Russia','India','China']
print delimiter.join(mylist)

【面向对象】 谈python的面向对象了。python就是这么强大。 self关键字: 类的方法区别于普通函数之处:第一个参数一定是self(也可以换为别的关键字但是不建议)。 这个self作用是,当类的一个实例对象调用类的方法的时候,self指的是这个对象本身。 {我认为在类的方法的参数列表中写self没有必要,使用约定俗成的this其实更好} ·类的创建:

# Filename : nice.py
# encoding:utf8
class Person:
    def sayHi(self):
        print 'Hello, how are you?'

p=Person()
p.sayHi()

·__init__方法:其实就是constructor

# Filename : nice.py
# encoding:utf8
class Person:
    def __init__(self,name):
        self.name=name
    def sayHi(self):
        print 'Hello, my name is', self.name

p=Person("Chris")
p.sayHi()

·__del__方法:类似于destructor (不过下面这个例子的运行结果让人很晕,明明没有调用__del__,但结果表明它偷偷的执行了)

# Filename : nice.py
# encoding:utf8
class Person:
    '''Represents a person.'''
    population = 0

    def __init__(self,name):
        '''Initializes the preson's data.'''
        self.name = name
        print '(Initializing %s)'%self.name

        #When this person is created, he/she
        #adds to the population
        Person.population += 1

    def __del__(self):
        '''I am dying.'''
        print '%s says bye.'%self.name
        Person.population -= 1

        if Person.population == 0:
            print 'I am the last one.'
        else:
            print 'There are still %d people left.'%Person.population

    def sayHi(self):
        '''Greeting by the person.

        Really, that's all it does.'''
        print 'Hi, my name is %s.'%self.name

    def howMany(self):
        '''Prints the current population.'''
        if Person.population == 1:
            print 'I am the only person here.'
        else:
            print 'We have %d persons here.'%Person.population

swaroop=Person('Swaroop')
swaroop.sayHi()
swaroop.howMany()

kalam=Person('Abdul Kalam')
kalam.sayHi()
kalam.howMany()

swaroop.sayHi()
swaroop.howMany()

·类继承的一个例子:

# Filename : nice.py
# encoding:utf8
class SchoolMember:
    '''Represents any school member.'''
    def __init__(self, name, age):
        self.name=name
        self.age=age
        print '(Initialized SchoolMember: %s)'%self.name

    def tell(self):
        '''Tell my details.'''
        print 'Name:"%s" Age:"%s"'%(self.name,self.age),

class Teacher(SchoolMember):
    '''Represents a teacher.'''
    def __init__(self,name,age, salary):
        SchoolMember.__init__(self,name,age)
        self.salary=salary
        print '(Initialized Teacher: %s)'%self.name

    def tell(self):
        SchoolMember.tell(self)
        print 'Salary: "%d"'%self.salary

class Student(SchoolMember):
    '''Represents a student.'''
    def __init__(self,name, age, marks):
        SchoolMember.__init__(self,name, age)
        self.marks=marks
        print '(Initialized Student: %s)'%self.name

    def tell(self):
        SchoolMember.tell(self)
        print 'Marks: "%d"'%self.marks
t=Teacher('Mrs. Shrividya', 40, 30000)
s=Student('Swaroop', 22, 75)

print #输出一个空白行

members=[t,s]
for member in members:
    member.tell()

【Python中的逗号】 在循环输出一行字符串的时候使用逗号结尾,可以避免多输出空的换行 ·python的文件操作: f=file('file_name',mode) f.write(str) f.close() f.readline() 一个例子:

# Filename : nice.py
# encoding:utf8
poem='''\
Programming is fun
When the work is done
if you wanna make your work also fun
        use Python!
'''

f=file('poem.txt','w') #打开文件,写入形式
f.write(poem)
f.close()

f=file('poem.txt')
#如果没有指定模式,默认使用read模式
while True:
    line=f.readline()
    if len(line)==0:#长度为0的行,意味着文件结束(EOF)
        break
    print line,
f.close()

·异常处理 一个EOFError的例子:

# Filename : nice.py
# encoding:utf8
import sys

try:
    s=raw_input('Enter something --> ')
except EOFError:
    print '\nWhy did you do an EOF on me?'
    sys.exit()
except:
    print '\nSome error/exception occurred.'

print 'Done'

·列表综合 一个简洁的列表:

# Filename : nice.py
# encoding:utf8

listone=[2,3,4]
listtwo=[2*i for i in listone if i>2]
print listtwo

函数接受不定个数参数的时候,使用* eg:

# Filename : nice.py
# encoding:utf8
def powersum(power, *args):
    '''Return the sum of each argument raised to specified power.'''
    total=0
    for i in args:
        total += pow(i, power)
    return total
print powersum(2,3,4)
print powersum(2,10)

使用lambda

# Filename : nice.py
# encoding:utf8
def make_repeater(n):
    return lambda s:s*n

twice=make_repeater(2)

print twice('word')
print twice(5)

exec:用来执行存储在字符串中的python表达式 eg:

# Filename : nice.py
# encoding:utf8
eval('print "Hello world"')

repr函数:用来取得对象的规范字符串表示。效果和反引号相同 eg

i=[]
i.append('item')
print `i`
print repr(i)

有一道题目这样描述: “创建一个类来表示一个人的信息。使用字典储存每个人的对象,把他们的名字作为键。 使用cPickle模块永久地把这些对象储存在你的硬盘上。使用字典内建的方法添加、 删除和修改人员信息。 一旦你完成了这个程序,你就可以说是一个Python程序员了。” 在网上找过了,基本上功能好实现(例如http://iris.is-programmer.com/2011/5/16/addressbook.26781.html) 但我想知道保存到硬盘的data文件中的内容(用pickle存储的),在user选择modify的时候,是否能够修改?and what about delete? I' m confuse about it, and many code version doesn't deal with the data file well. Once I re-run the python file, the stored data is empty, because 他们不从data文件中read数据! About GUI in Python: There are several tools we can use. They are: PyQt: works well in Linux. Not free in windows PyGTK: works well in Linux. wxPython:windows下可以用。免费。 TkInter:据说IDLE就是这个开发的 TkInter是标准Python发行版的一部分。在Linux和Windows下都可以用

时间: 2024-10-26 23:26:06

【笔记】Python简明教程的相关文章

Python类的定义、继承及类对象使用方法简明教程

  这篇文章主要介绍了Python类的定义.继承及类对象使用方法简明教程,本文用浅显易懂的语言讲解了类的定义.继承及类对象的使用,非常实用易懂,需要的朋友可以参考下 Python编程中类的概念可以比作是某种类型集合的描述,如"人类"可以被看作一个类,然后用人类这个类定义出每个具体的人--你.我.他等作为其对象.类还拥有属性和功能,属性即类本身的一些特性,如人类有名字.身高和体重等属性,而具体值则会根据每个人的不同;功能则是类所能实现的行为,如人类拥有吃饭.走路和睡觉等功能.具体的形式如

Python快速教程 尾声

  写了将近两年的Python快速教程,终于大概成形.这一系列文章,包括Python基础.标准库.Django框架.前前后后的文章,包含了Python最重要的组成部分.这一内容的跨度远远超过我的预期,也超过了我看过的任何Python相关书籍.最初动笔的原因,除了要总结,还对很多Python书和教程觉得不满意,觉得太晦涩,又不够全面.现在,我比较确定,参考我在Linux.网络.算法方面的总结,读者可以在无基础的背景下,在短时间,有深度的学习Python了. 这一篇也是尾声.准备在一个长的时间内,停

ANT安装与测试和简明教程

1     window  一.安装ant 到官方主页http://ant.apache.org下载新版(目前为Ant1.8.1)的ant,得到的是一个apache-ant-1.8.1-bin.zip的压缩包.将其解压到你的硬盘上,例如:C:\apache-ant-1.8.1. 二.配置环境变量 window中设置ant环境变量: ANT_HOME    C:/ apache-ant-1.8.1 path             C:/ apache-ant-1.8.1/bin classpat

Docker简明教程

本文讲的是Docker简明教程,[编者的话]使用Docker来写代码更高效并能有效提升自己的技能.Docker能打包你的开发环境,消除包的依赖冲突,并通过集装箱式的应用来减少开发时间和学习时间. Docker作为一把瑞士军刀在DevOps扮演的角色已经被很多文档提到过了.但实际上Docker管理应用容器比在云上部署服务器更加有用.Docker旨在在很多通用开发场景里显著提升开发效率.本教程从一个开发者的视角阐述Docker如何有用,我会介绍Docker,解释基本的概念和术语,并列举几个实际动手操

perl 简明教程 perl教程集合_perl

参考:http://shouce.jb51.net/perl5/ 网站环境配置:http://www.jb51.net/article/74005.htm Perl的基本语法 http://www.jb51.net/shouce/Perl.htm 前言:perl是什么,干什么用的?perl原来设计者的意图是用来处理 字符的,80%的强项是处理字符,当然其它的很多都可以.现在很多网页也是用perl的,通常需要CGI环境,比如 $char =~ /语言/ ,意思是查找含有"语言"这两个字的

F#简明教程二:F#类型系统和类型推断机制

在上一篇教程<F#与函数式编程概述>中我们了解到F#和函数式编程的一些特点,更多关于F#语言和函数式编程的介绍可以参考51CTO之前对微软MVP赵颉老师的专访<TechED 09视频专访:F#与函数式编程语言>.本节教程我们将学习到F#的一些基础原理,在开始之前,让我们先温习一下我们的Hello World代码: #light System.Console.WriteLine("This is one hello") printfn "This is

XML简明教程目录

XML简明教程第1课: 处理XML元素 XML简明教程第2课: 处理XML文档 XML简明教程第3课 处理XML数据岛 XML简明教程第4课: 使用XML对象模型 XML简明教程第5课:使用XML名域 XML简明教程第6课 使用XML Schema XML简明教程第7课:在XML文档中使用数据类型 XML简明教程第8课:访问经过类型定义的XML值 XML简明教程第9课:使用C++ XML DSO XML简明教程第10课 :C++ XML DSO中使用主/细节特征 XML简易教程之一 XML简易教

XSL简明教程目录

XSL简明教程(1)XSL入门 XSL简明教程(2)XSL转换 XSL简明教程(3)在客户端的实现 XSL简明教程(4)在服务器端的实现 XSL简明教程(5)XSL的索引 XSL简明教程(6)XSL过滤和查询 了解WEB页面工具语言XML(一)背景 了解WEB页面工具语言XML(二)定义 了解WEB页面工具语言XML(三)支持工具 了解WEB页面工具语言XML(四)应用分类 了解WEB页面工具语言XML(五)好处 了解WEB页面工具语言XML(六)展望

Linux防火墙iptables简明教程

  前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔除了许多冗余的内容,提取出尽量多的精华部分成文,和大家共同学习,本文涉及的内容包括如下 Linux防火墙iptables简明教程 1.安装iptables 2.查看现有的iptables规则 3.删除某iptables规则 4.清除现有iptables规则 5.创建规则 6.设置开机启动 7.保