频道栏目
首页 > 资讯 > Python基础教程 > 正文

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

16-01-13        来源:[db:作者]  
收藏   我要投稿
本文适合有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)
相关TAG标签
上一篇:Python类的基础入门知识
下一篇:Python入门篇之函数
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站