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实现rsa加密实例详解
Jul 19 Python
Python配置mysql的教程(推荐)
Oct 13 Python
Python搜索引擎实现原理和方法
Nov 27 Python
pandas.DataFrame删除/选取含有特定数值的行或列实例
Nov 07 Python
Python设计模式之抽象工厂模式原理与用法详解
Jan 15 Python
Django框架创建mysql连接与使用示例
Jul 29 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
python 实用工具状态机transitions
Nov 21 Python
用Python 执行cmd命令
Dec 18 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 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 编程的 5个良好习惯
2009/02/20 PHP
PHP设计模式 注册表模式
2012/02/05 PHP
关于使用key/value数据库redis和TTSERVER的心得体会
2013/06/28 PHP
PHP+MySQL实现无极限分类栏目的方法
2015/12/23 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
php基于session锁防止阻塞请求的方法分析
2017/08/07 PHP
在标题栏显示新消息提示,很多公司项目中用到这个方法
2011/11/04 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
原生js仿jquery实现对Ajax的封装
2016/10/04 Javascript
微信小程序 教程之引用
2016/10/18 Javascript
JavaScript实现Fly Bird小游戏
2016/12/15 Javascript
jQuery实现的简单悬浮层功能完整实例
2017/01/23 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
基于zepto.js实现手机相册功能
2017/07/11 Javascript
vue小白入门教程
2018/04/02 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
详解vue 图片上传功能
2019/04/30 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
Python学习资料
2007/02/08 Python
Python中的__SLOTS__属性使用示例
2015/02/18 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
Python用sndhdr模块识别音频格式详解
2018/01/11 Python
python爬虫实现POST request payload形式的请求
2020/04/30 Python
Django --Xadmin 判断登录者身份实例
2020/07/03 Python
python中二分查找法的实现方法
2020/12/06 Python
HTML5的语法变化介绍
2013/08/13 HTML / CSS
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
达拉斯牛仔官方商店:Dallas Cowboys Pro Shop
2018/02/10 全球购物
二年级语文教学反思
2014/02/02 职场文书
预备党员的自我评价
2014/03/12 职场文书
Redis特殊数据类型bitmap位图
2022/06/01 Redis