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使用循环实现批量创建文件夹示例
Mar 25 Python
Python3基础之基本运算符概述
Aug 13 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
python实现八大排序算法(1)
Sep 14 Python
Python语言描述随机梯度下降法
Jan 04 Python
详解python多线程、锁、event事件机制的简单使用
Apr 27 Python
Python中交换两个元素的实现方法
Jun 29 Python
Python判断telnet通不通的实例
Jan 26 Python
python 实现12bit灰度图像映射到8bit显示的方法
Jul 08 Python
django中上传图片分页三级联动效果的实现代码
Aug 30 Python
Python 50行爬虫抓取并处理图灵书目过程详解
Sep 20 Python
Python定时器线程池原理详解
Feb 26 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
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
PHP-FPM 的管理和配置详解
2019/02/17 PHP
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
jquery 经典动画菜单效果代码
2010/01/26 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
javascript判断office版本示例
2014/04/11 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
JavaScript中实现map功能代码分享
2015/06/11 Javascript
JavaScript基础知识之方法汇总结
2016/01/24 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
微信小程序签到功能
2018/10/31 Javascript
vue中实现动态生成二维码的方法
2020/02/21 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
[01:15]《辉夜杯》北京网鱼队巡礼
2015/10/26 DOTA
Python实现Const详解
2015/01/27 Python
python过滤字符串中不属于指定集合中字符的类实例
2015/06/30 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
Python数据可视化图实现过程详解
2020/06/12 Python
python中time.ctime()实例用法
2021/02/03 Python
Django实现简单的分页功能
2021/02/22 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
iframe与window.onload如何使用详解
2020/05/07 HTML / CSS
美国购物网站:Clickhere2shop
2021/01/28 全球购物
求最大连续递增数字串(如"ads3sl456789DF3456ld345AA"中的"456789")
2015/09/11 面试题
以太网Ethernet IEEE802.3
2013/08/05 面试题
疾病防治方案
2014/05/31 职场文书
授权委托书格式
2014/07/31 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫