Python 3 教程一:入门

发布时间:2023-05-06 09:48:19

Python已经是3.1版,与时俱进更新教程.(Django不支持python3, 所以为了你的发展潜力, 建议你学习python2.x )

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

1 你好

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

知识点: *input(“字符串”)函数:显示“字符串”,等待用户输入. *print()函数:如何打印. *如何运用中文? *如何使用多行注释 '''

2 字符串和数字

但有趣的是,在javascript中,我们理想地将字符串与数字连接起来,因为它是一种动态语言。但在python中有点奇怪,如下:

# !/usr/bin/pythona = 2b = " test "c = a + b操作程序会出错,提示您的字符串和数字无法连接,因此您必须使用内置函数进行转换# !/usr/bin/python# 操作此行程序会出错,提示您的字符串和数字无法连接,所以我不得不用内置函数来转换a = 2b = " test "c = str(a) + bd = " 1111 "e = a + int(d)# Howtoprintmultiplyvaluesprint ( " cis%s,eis%i "  % (c,e))'''

''' 知识点: *用int和str函数转换字符串和数字 *打印从#开始,而不是习惯/// *打印多个参数的方法 '''

3 列表

# !/usr/bin/python# -*-coding:utf8-*-# 类似Javascript的数组列表,使用方便# 定义元组word = [ ' a ' , ' b ' , ' c ' , ' d ' , ' e ' , ' f ' , ' g ' ]# 如何通过索引访问元组中的元素a = word[ 2 ]print ( " ais: " + a)b = word[ 1 : 3 ]print ( " bis: " )print (b) # dindex1and2elementsofword.c = word[: 2 ]print ( " cis: " )print (c) # dindex0and1elementsofword.d = word[0:]print ( " dis: " )print (d) # Allelementsofword.# 元组可以合并e = word[: 2 ] + word[ 2 :]print ( " eis: " )print (e) # Allelementsofword.f = word[ - 1 ]print ( " fis: " )print (f) # Thelastelementsofword.g = word[ - 4 : - 2 ]print ( " gis: " )print (g) # dindex3and4elementsofword.h = word[ - 2 :]print ( " his: " )print (h) # Thelasttwoelements.i = word[: - 2 ]print ( " iis: " )print (i) # Everythingexceptthelasttwocharactersl = len(word)print ( " Lengthofwordis: " + str(l))print ( " Addsnewelement " )word.append( ' h ' )print (word)# 删除元素del word[0]print (word)del word[ 1 : 3 ]print (word)'''

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

4 字典

# !/usr/bin/pythonx = { ' a ' : ' aaa ' , ' b ' : ' bbb ' , ' c ' : 12 }print (x[ ' a ' ])print (x[ ' b ' ])print (x[ ' c ' ])for key in x: print ( " Keyis%sandvalueis%s "  % (key,x[key]))

''' 知识点: *使用他作为Java的Map. '''

5 字符串

比起C/C++,Python处理字符串的方式真的很感人。用字符串作为列表.

# !/usr/bin/pythonword = " abcdefg "a = word[ 2 ]print ( " ais: " + a)b = word[ 1 : 3 ]print ( " bis: " + b) # dindex1and2elementsofword.c = word[: 2 ]print ( " cis: " + c) # dindex0and1elementsofword.d = word[0:]print ( " dis: " + d) # Allelementsofword.e = word[: 2 ] + word[ 2 :]print ( " eis: " + e) # Allelementsofword.f = word[ - 1 ]print ( " fis: " + f) # Thelastelementsofword.g = word[ - 4 : - 2 ]print ( " gis: " + g) # dindex3and4elementsofword.h = word[ - 2 :]print ( " his: " + h) # Thelasttwoelements.i = word[: - 2 ]print ( " iis: " + i) # Everythingexceptthelasttwocharactersl = len(word)print ( " Lengthofwordis: " + 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( " Pleaseenteraninteger: " ))if x < 0:x = 0 print ( " Negativechangedtozero " )elif x == 0: print ( " Zero " )else : print ( " More " )# LoopsLista = [ ' cat ' , ' window ' , ' defenestrate ' ]for x in a: print (x,len(x))

# 知识点: # *条件和循环语句 # *如何获得控制台输入?

7 函数

# !/usr/bin/python# -*-coding:utf8-*-def sum(a,b): return a + bfunc = sumr = func( 5 , 6 )print (r)# 提供默认值def add(a,b = 2 ): return a + br = add( 1 )print (r)r = add( 1 , 5 )print (r)一个好用的函数# !/usr/bin/python# -*-coding:utf8-*-# Therange()functiona = range( 1 , 10 )for i in a: print (i)a = range( - 2 , - 11 , - 3 ) # The3rdparameterstandsforstepfor i in a: print (i)

知识点:

  • Python 不需要{}来控制程序结构,他强迫你用缩进来写程序,使代码清晰.
  • 方便简单地定义函数
  • range函数方便易用

 

8 异常处理

# !/usr/bin/pythons = input( " Inputyourage: " )if s == "" : raise Exception( " Inputmustnobeempty. " )try :i = int(s)except Exceptionaserr: print (err)finally : # Cleanupaction print ( " Goodbye! " )

9 文件处理

与Java相比,python的文本处理再次令人感动

# !/usr/bin/pythonspath = " D:/download/baa.txt "f = open(spath, " w " ) # Opensfileforwriting.Createsthisfiledoesn'texist.f.write( " Firstline1.\n " )f.writelines( " Firstline2. " )f.close()f = open(spath, " r " ) # Opensfileforreadingfor 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)# ChildextendsBaseclass Child(Base): def plus(self,a,b): return a + boChild = Child()oChild.add( " str1 " )print (oChild.data)print (oChild.plus( 2 , 3 ))'''

知识点: *self:类似Java的this参数 '''

11 包机制

每一个.py文件称为module,module可以相互导入。请参考以下例子:

# a.pydef add_func(a,b): return a + b# b.pyfrom a import add_func # Alsocanbe:importaprint ( " Importadd_funcfrommodulea " )print ( " Resultof1plus2is: " )print (add_func( 1 , 2 )) # Ifusing"importa",thenhereshouldbe"a.add_func“module可以定义在包里.假设我们有一个parent文件夹,Python定义包的方式有点奇怪,文件夹中有一个child子文件夹.modulelld中有一个module a.py . 如何让Python知道这个文件的层次结构?很简单,每个目录都有一个名字叫_init _.py 该文件的内容可以是空的。该层次结构如下:parent -- __init_.py -- child -- __init_.py -- a.pyb.Python如何找到我们定义的module?Python的包路径记录在标准包sys中。您可以打印它:importsysprint(sys.path)通常我们可以将module的包路径放入环境变量PYTHONPATH中,环境变量将自动添加到sys中.path属性。另一种方便的方法是在编程中直接指定我们的module路径到sys.path 中:import sysimport ossys.path.append(os.getcwd() + ' \\parent\\child ' )print (sys.path)from a import add_funcprint (sys.path)print ( " Importadd_funcfrommodulea " )print ( " Resultof1plus2is: " )print (add_func( 1 , 2 ))

知识点:

  • 如何定义模块和包
  • 如何将模块路径添加到系统路径中,以便Python找到它们
  • 如何获得当前的路径

12 内建帮助手册

与C++相比,Java的突出进步是建立Javadoc机制,程序员可以通过阅读Javadoc来理解函数的用法.Python还建立了一些方便函数供程序员参考.

  • dir函数: 查看某一类/对象的方法. 如果你想不起某种方法,请敲dir. 试试idle dir(list)
  • help函数: 详细介绍类/对象. 在idle中, 试试 help(list)

上一篇 原生JS实现淡入淡出效果(fadeIn/fadeOut/fadeTo)
下一篇 Python 3 教程二:文件,目录和路径

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题