Python3 入门教程 简单但比较不错


Posted in Python onNovember 29, 2009

本文适合有Java编程经验的程序员快速熟悉Python
本文程序在windows xp+python3.1a1 测试通过.
本文提到的idle指python shell,即安装python后你在菜单看到的IDLE(python gui)
在idle里ctrl+n可以打开一个新窗口,输入源码后ctrl+s可以保存,f5运行程序.
凡打开新窗口即指ctrl+n的操作.
1 你好

#打开新窗口,输入: 
#! /usr/bin/python 
# -*- coding: utf8 -*- s1=input("Input your name:") 
print("你好,%s" % s1) 
'''

知识点:
* input("某字符串")函数:显示"某字符串",并等待用户输入.
* print()函数:如何打印.
* 如何应用中文
* 如何用多行注释
'''

2 字符串和数字
但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下:

#! /usr/bin/python 
a=2 
b="test" 
c=a+b

运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换
#! /usr/bin/python 
#运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换 
a=2 
b="test" 
c=str(a)+b 
d="1111" 
e=a+int(d) 
#How to print multiply values 
print ("c is %s,e is %i" % (c,e)) 
'''

知识点:
* 用int和str函数将字符串和数字进行转换
* 打印以#开头,而不是习惯的//
* 打印多个参数的方式
'''

3 列表

#! /usr/bin/python 
# -*- coding: utf8 -*- 
#列表类似Javascript的数组,方便易用 
#定义元组 
word=['a','b','c','d','e','f','g'] 
#如何通过索引访问元组里的元素 
a=word[2] 
print ("a is: "+a) 
b=word[1:3] 
print ("b is: ") 
print (b) # index 1 and 2 elements of word. 
c=word[:2] 
print ("c is: ") 
print (c) # index 0 and 1 elements of word. 
d=word[0:] 
print ("d is: ") 
print (d) # All elements of word. 
#元组可以合并 
e=word[:2]+word[2:] 
print ("e is: ") 
print (e) # All elements of word. 
f=word[-1] 
print ("f is: ") 
print (f) # The last elements of word. 
g=word[-4:-2] 
print ("g is: ") 
print (g) # index 3 and 4 elements of word. 
h=word[-2:] 
print ("h is: ") 
print (h) # The last two elements. 
i=word[:-2] 
print ("i is: ") 
print (i) # Everything except the last two characters 
l=len(word) 
print ("Length of word is: "+ str(l)) 
print ("Adds new element") 
word.append('h') 
print (word) 
#删除元素 
del word[0] 
print (word) 
del word[1:3] 
print (word) 
'''

知识点:
* 列表长度是动态的,可任意添加删除元素.
* 用索引可以很方便访问元素,甚至返回一个子列表
* 更多方法请参考Python的文档
'''

4 字典

#! /usr/bin/python 
x={'a':'aaa','b':'bbb','c':12} 
print (x['a']) 
print (x['b']) 
print (x['c']) 
for key in x: 
print ("Key is %s and value is %s" % (key,x[key])) 
'''

知识点:
* 将他当Java的Map来用即可.
'''

5 字符串
比起C/C++,Python处理字符串的方式实在太让人感动了.把字符串当列表来用吧.

#! /usr/bin/python 
word="abcdefg" 
a=word[2] 
print ("a is: "+a) 
b=word[1:3] 
print ("b is: "+b) # index 1 and 2 elements of word. 
c=word[:2] 
print ("c is: "+c) # index 0 and 1 elements of word. 
d=word[0:] 
print ("d is: "+d) # All elements of word. 
e=word[:2]+word[2:] 
print ("e is: "+e) # All elements of word. 
f=word[-1] 
print ("f is: "+f) # The last elements of word. 
g=word[-4:-2] 
print ("g is: "+g) # index 3 and 4 elements of word. 
h=word[-2:] 
print ("h is: "+h) # The last two elements. 
i=word[:-2] 
print ("i is: "+i) # Everything except the last two characters 
l=len(word) 
print ("Length of word is: "+ str(l))

中文和英文的字符串长度是否一样?
#! /usr/bin/python 
# -*- coding: utf8 -*- 
s=input("输入你的中文名,按回车继续"); 
print ("你的名字是 : " +s) 
l=len(s) 
print ("你中文名字的长度是:"+str(l))

知识点:
类似Java,在python3里所有字符串都是unicode,所以长度一致.

6 条件和循环语句

#! /usr/bin/python 
#条件和循环语句 
x=int(input("Please enter an integer:")) 
if x<0: 
x=0 
print ("Negative changed to zero") 
elif x==0: 
print ("Zero") 
else: 
print ("More") # Loops List 
a = ['cat', 'window', 'defenestrate'] 
for x in a: 
print (x, len(x)) 
#知识点: 
# * 条件和循环语句 
# * 如何得到控制台输入

7 函数
#! /usr/bin/python 
# -*- coding: utf8 -*- 
def sum(a,b): 
return a+b func = sum 
r = func(5,6) 
print (r) 
# 提供默认值 
def add(a,b=2): 
return a+b 
r=add(1) 
print (r) 
r=add(1,5) 
print (r) 
一个好用的函数 
#! /usr/bin/python 
# -*- coding: utf8 -*- 
# The range() function 
a =range (1,10) 
for i in a: 
print (i) 
a = range(-2,-11,-3) # The 3rd parameter stands for step 
for i in a: 
print (i)

知识点:
Python 不用{}来控制程序结构,他强迫你用缩进来写程序,使代码清晰.
定义函数方便简单
方便好用的range函数

8 异常处理

#! /usr/bin/python 
s=input("Input your age:") 
if s =="": 
raise Exception("Input must no be empty.") 
try: 
i=int(s) 
except Exception as err: 
print(err) 
finally: # Clean up action 
print("Goodbye!")

9 文件处理
对比Java,python的文本处理再次让人感动
#! /usr/bin/python 
spath="D:/download/baa.txt" 
f=open(spath,"w") # Opens file for writing.Creates this file doesn't exist. 
f.write("First line 1.\n") 
f.writelines("First line 2.") 
f.close() 
f=open(spath,"r") # Opens file for reading 
for line in f: 
print("每一行的数据是:%s"%line) 
f.close()

知识点:
open的参数:r表示读,w写数据,在写之前先清空文件内容,a打开并附加内容.
打开文件之后记得关闭

10 类和继承

class Base: 
def __init__(self): 
self.data = [] 
def add(self, x): 
self.data.append(x) 
def addtwice(self, x): 
self.add(x) 
self.add(x) 
# Child extends Base 
class Child(Base): 
def plus(self,a,b): 
return a+b 
oChild =Child() 
oChild.add("str1") 
print (oChild.data) 
print (oChild.plus(2,3)) 
''' 
知识点: 
* self:类似Java的this参数 
'''

11 包机制
每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:
# a.py 
def add_func(a,b): 
return a+b 
# b.py 
from a import add_func # Also can be : import a 
print ("Import add_func from module a") 
print ("Result of 1 plus 2 is: ") 
print (add_func(1,2)) # If using "import a" , then here should be "a.add_func"

module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件内容可以为空.这个层次结构如下所示:
parent
--__init_.py
--child
-- __init_.py
--a.py
b.py
那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python的包路径.你可以将之打印出来:
import sys
print(sys.path)
通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path 中:
import sys 
import os 
sys.path.append(os.getcwd()+'\\parent\\child') 
print(sys.path) 
from a import add_func print (sys.path) 
print ("Import add_func from module a") 
print ("Result of 1 plus 2 is: ") 
print (add_func(1,2))

知识点:
如何定义模块和包
如何将模块路径添加到系统路径,以便python找到它们
如何得到当前路径

12 内建帮助手册
对比C++,Java的突出进步是内建Javadoc机制,程序员可以通过阅读Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考.

dir函数: 查看某个类/对象的方法. 如果有某个方法想不起来,请敲dir. 在idle里,试试 dir(list)
help函数: 详细的类/对象介绍. 在idle里, 试试 help(list)

Python 相关文章推荐
python操作ie登陆土豆网的方法
May 09 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 Python
Sublime开发python程序的示例代码
Jan 24 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
Oct 30 Python
Python后台开发Django会话控制的实现
Apr 15 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
Django ORM 常用字段与不常用字段汇总
Aug 09 Python
解决python 文本过滤和清理问题
Aug 28 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
Python3 hashlib密码散列算法原理详解
Mar 30 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
Python2.5/2.6实用教程 入门基础篇
Nov 29 #Python
python 快速排序代码
Nov 23 #Python
python 文件和路径操作函数小结
Nov 23 #Python
Python+Django在windows下的开发环境配置图解
Nov 11 #Python
Python 开发Activex组件方法
Nov 08 #Python
Python 匹配任意字符(包括换行符)的正则表达式写法
Oct 29 #Python
python 中文字符串的处理实现代码
Oct 25 #Python
You might like
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
php生成二维码
2015/08/10 PHP
Avengerls vs KG BO3 第二场2.18
2021/03/10 DOTA
js实现ASP分页函数 HTML分页函数
2006/09/22 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
javascript 三种编解码方式
2010/02/01 Javascript
JS正则中的RegExp对象对象
2012/11/07 Javascript
SVG描边动画
2017/02/23 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
nodejs前端模板引擎swig入门详解
2018/05/15 NodeJs
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
vue实现前台列表数据过滤搜索、分页效果
2019/05/28 Javascript
微信小程序位置授权处理方法
2019/06/13 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python之list对应元素求和的方法
2018/06/28 Python
Python3如何在Windows和Linux上打包
2020/02/25 Python
在Keras中实现保存和加载权重及模型结构
2020/06/15 Python
Python-openCV开运算实例
2020/07/05 Python
使用CSS3制作版头动画效果
2020/12/24 HTML / CSS
日语系毕业生推荐信
2013/11/11 职场文书
海南地接欢迎词
2014/01/14 职场文书
年终考核评语
2014/01/19 职场文书
学生党员批评与自我批评
2014/10/15 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
解除租房协议书
2014/12/03 职场文书
先进党员事迹材料
2014/12/24 职场文书
2015年端午节活动方案
2015/05/05 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书
党校培训学习心得体会
2016/01/06 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
nginx搭建NFS网络文件系统
2022/04/14 Servers