【笔记】Python简明教程

简介: Python简明教程,此资源位于http://woodpecker.org.cn/abyteofpython_cn/chinese/ s=u'中文字符' #u表示unicode,使用u之后能正常显示中文 s='''多行文本 这是第二哈''' #'''表示多行注释。

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下都可以用

目录
相关文章
|
5月前
|
编解码 数据安全/隐私保护 Python
抖音批量发布视频工具,自动上传视频作品笔记,python发布软件
这个抖音批量发布工具包含三个主要模块:主上传程序、配置文件和视频预处理工具。主程序
|
2月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
122 1
|
3月前
|
数据采集 存储 XML
Python爬虫技术:从基础到实战的完整教程
最后强调: 父母法律法规限制下进行网络抓取活动; 不得侵犯他人版权隐私利益; 同时也要注意个人安全防止泄露敏感信息.
685 19
|
3月前
|
数据采集 存储 JSON
使用Python获取1688商品详情的教程
本教程介绍如何使用Python爬取1688商品详情信息,涵盖环境配置、代码编写、数据处理及合法合规注意事项,助你快速掌握商品数据抓取与保存技巧。
|
5月前
|
机器学习/深度学习 数据安全/隐私保护 计算机视觉
过三色刷脸技术,过三色刷脸技术教程,插件过人脸python分享学习
三色刷脸技术是基于RGB三通道分离的人脸特征提取方法,通过分析人脸在不同颜色通道的特征差异
|
5月前
|
XML Linux 区块链
Python提取Word表格数据教程(含.doc/.docx)
本文介绍了使用LibreOffice和python-docx库处理DOC文档表格的方法。首先需安装LibreOffice进行DOC到DOCX的格式转换,然后通过python-docx读取和修改表格数据。文中提供了详细的代码示例,包括格式转换函数、表格读取函数以及修改保存功能。该方法适用于Windows和Linux系统,解决了老旧DOC格式文档的处理难题,为需要处理历史文档的用户提供了实用解决方案。
427 0
|
4月前
|
并行计算 算法 Java
Python3解释器深度解析与实战教程:从源码到性能优化的全路径探索
Python解释器不止CPython,还包括PyPy、MicroPython、GraalVM等,各具特色,适用于不同场景。本文深入解析Python解释器的工作原理、内存管理机制、GIL限制及其优化策略,并介绍性能调优工具链及未来发展方向,助力开发者提升Python应用性能。
270 0
|
4月前
|
数据采集 索引 Python
Python Slice函数使用教程 - 详解与示例 | Python切片操作指南
Python中的`slice()`函数用于创建切片对象,以便对序列(如列表、字符串、元组)进行高效切片操作。它支持指定起始索引、结束索引和步长,提升代码可读性和灵活性。
|
7月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
463 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程

推荐镜像

更多