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 基础学习第二弹 类属性和实例属性
Aug 27 Python
Python HTMLParser模块解析html获取url实例
Apr 08 Python
Python的Flask框架中实现登录用户的个人资料和头像的教程
Apr 20 Python
python构建自定义回调函数详解
Jun 20 Python
python 读取txt中每行数据,并且保存到excel中的实例
Apr 29 Python
使用python批量化音乐文件格式转换的实例
Jan 09 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
TensorFlow绘制loss/accuracy曲线的实例
Jan 21 Python
python语言中有算法吗
Jun 16 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 Python
Python趣味挑战之实现简易版音乐播放器
May 28 Python
python中的plt.cm.Paired用法说明
May 31 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中array_merge和array相加的区别分析
2013/06/17 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
jQuery ajax BUG:object doesn't support this property or method
2010/07/06 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
javascript实现列表滚动的方法
2015/07/30 Javascript
原生js实现autocomplete插件
2016/04/14 Javascript
JavaScript学习笔记整理_简单实现枚举类型,扑克牌应用
2016/09/19 Javascript
微信小程序 跳转传参数与传对象详解及实例代码
2017/03/14 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
如何处理Python3.4 使用pymssql 乱码问题
2016/01/08 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
在Python中预先初始化列表内容和长度的实现
2019/11/28 Python
如何解决cmd运行python提示不是内部命令
2020/07/01 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
Opencv常见图像格式Data Type及代码实例
2020/11/02 Python
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
哥德堡通行证:Gothenburg Pass
2019/12/09 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
个人授权委托书范文
2014/09/21 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
集结号观后感
2015/06/08 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
解决Tkinter中button按钮未按却主动执行command函数的问题
2021/05/23 Python
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS