Python基础语法(Python基础知识点)

Python与Perl,C和Java语言等有许多相似之处。不过,也有语言之间有一些明确的区别。本章的目的是让你迅速学习Python的语法。

第一个Python程序:

交互模式编程:

调用解释器不经过脚本文件作为参数,显示以下提示:

$ python

Python 2.6.4 (#1, Nov 11 2014, 13:34:43)

[GCC 4.1.2 20120704 (Red Hat 5.6.2-48)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>>

键入下列文字在Python提示符,然后按Enter键:

>>> print "Hello, Python!";

如果您运行的是新的Python版本,那么需要使用打印语句括号像print ("Hello, Python!");。但是在Python版本2.6.4,这将产生以下结果:

Hello, Python!

脚本模式编程:

调用解释器及脚本作为参数,并开始执行的脚本,并一直持续到脚本完成。当脚本完成时,解释器不再是活动的。

让我们在脚本中编写一个简单的Python程序。所有的Python文件将具有.py扩展。所以,把下面的代码写在一个test.py文件。

print "Hello, Python!";

在这里,我假设你已经在PATH变量中设置Python解释器。现在,尝试如下运行这个程序:

$ python test.py

这将产生以下结果:

Hello, Python!

让我们尝试另一种方式来执行Python脚本。下面是修改后的test.py文件:

#!/usr/bin/python

print "Hello, Python!";

在这里,假设Python解释器在/usr/bin目录中可用。现在,尝试如下运行这个程序:

$ chmod +x test.py     # This is to make file executable

$./test.py

这将产生以下结果:

Hello, Python!


Python标识符:

Python标识符是用来标识一个变量,函数,类,模块或其他对象的名称。一个标识符开始以字母A到Z或a〜z或后跟零个或多个字母下划线(_),下划线和数字(0〜9)。

Python中标识符内不允许标点符号,如@,$和%。 Python是一种区分大小写的编程语言。因此,Manpower 和manpower在Python中是两个不同的标识符。

这里有Python标识符命名约定:

• 类名以大写字母以及所有其它标识符以小写字母。

• 开头单个前导下划线的标识符表示由该标识符约定意思是私有的。

• 开头两个前导下划线的标识符表示一个强烈的私有的标识符。

• 如果标识符末尾还具有两个下划线结束时,该标识符是一个语言定义的特殊名称。

保留字:

下面列出了在Python中的保留字。这些保留字不可以被用作常量或变量,或任何其它标识符。所有Python关键字只包含小写字母。

andexecnot
assertfinallyor
breakforpass
classfromprint
continueglobalraise
defifreturn
delimporttry
elifinwhile
elseiswith
exceptlambdayield

行和缩进:

一个程序员学习Python时,遇到的第一个需要注意的地方是,不使用括号来表示代码的类和函数定义块或流程控制。代码块是由行缩进,这是严格执行表示方式。

在缩进位的数目是可变的,但是在块中的所有语句必须缩进相同的量。在这个例子中,两个功能块都很好使用:

if True:

print "True"

else:

print "False"

然而,在本实施例中的第二块将产生一个错误:

if True:

print "Answer"

print "True"

else:

print "Answer"

print "False"

因此,在Python中所有的连续线缩进的空格数同样的会结成块。以下是各种语句块中的例子:

注意:不要试图理解所使用的逻辑或不同的功能。只要确定你明白,即使他们各种模块无需括号。

#!/usr/bin/python

import sys

try:

# open file stream

file = open(file_name, "w")

except IOError:

print "There was an error writing to", file_name

sys.exit()

print "Enter '", file_finish,

print "' When finished"

while file_text != file_finish:

file_text = raw_input("Enter text: ")

if file_text == file_finish:

# close the file

file.close

break

file.write(file_text)

file.write("

")

file.close()

file_name = raw_input("Enter filename: ")

if len(file_name) == 0:

print "Next time please enter something"

sys.exit()

try:

file = open(file_name, "r")

except IOError:

print "There was an error reading file"

sys.exit()

file_text = file.read()

file.close()

print file_text

多行语句:

Python语句通常用一个新行结束。 但是,Python允许使用续行字符()来表示,该行应该继续下去(跨行)。例如:

total = item_one +

item_two +

item_three

包含在[],{}或()括号内的陈述并不需要使用续行符。例如:

days = ['Monday', 'Tuesday', 'Wednesday',

'Thursday', 'Friday']

Python引号:

Python接受单引号('),双引号(“)和三(''或”“”)引用,以表示字符串常量,只要是同一类型的引号开始和结束的字符串。

三重引号可以用于跨越多个行的字符串。例如,所有下列是合法的:

word = 'word'

sentence = "This is a sentence."

paragraph = """This is a paragraph. It is

made up of multiple lines and sentences."""

Python注释:

一个井号(#),这不是一个字符串文字开头的注释。“#”号之后字符和到物理行是注释的一部分,Python解释器会忽略它们。

#!/usr/bin/python

# First comment

print "Hello, Python!"; # second comment

这将产生以下结果:

Hello, Python!


注释可能会在声明中表达或同一行之后:

name = "Madisetti" # This is again comment

你可以使用多行注释如下:

# This is a comment.

# This is a comment, too.

# This is a comment, too.

# I said that already.

使用空行:

一行只含有空格,可能带有注释,如果是空行那么Python完全忽略它。

在交互式解释器会话中,必须输入一个空的物理行终止多行语句。

等待用户:

程序的下面一行显示的提示,按回车键退出,等待用户按下回车键:

#!/usr/bin/python

raw_input("Press the enter key to exit.")

在这里,“ 已”被用来显示实际行之前创建两个换行。一旦用户按下键时,程序结束。这是一个很好的技巧,保持一个控制台窗口打开,直到用户完成应用程序运行。

在一行中多个语句:

分号( ; ) 允许在单行写入多条语句,不管语句是否启动一个新的代码块。下面是使用分号示例:

import sys; x = 'foo'; sys.stdout.write(x + '')

多个语句组作为套件:

一组单独的语句,在Python单一的代码块被称为序列。复杂的语句,如if, while, def, and class,那些需要一个标题行和套件。

标题行开始的声明(与关键字),并终止与冒号(:)),接着是一个或多个线构成该套件。例如:

if expression :

suite

elif expression :

suite

else :

suite

命令行参数:

我们可能已经看到了,比如,很多程序可以运行,它们提供有关如何运行的一些基本信息。 Python中可以使用 -h 做到这一点:

$ python -h

usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...

Options and arguments (and corresponding environment variables):

-c cmd : program passed in as string (terminates option list)

-d : debug output from parser (also PYTHONDEBUG=x)

-E : ignore environment variables (such as PYTHONPATH)

-h : print this help message and exit

[ etc. ]

您也可以设定您的脚本,它应该以这样的方式接受各种选项。 命令行参数是一个高级主题并在以后学习,当您通过其它的Python概念后。

以下是补充:

Python中查看变量对应的地址用函数id(var)。

 

注意在Python中与在C语言中有一些不同的地方。比如:a = 10,在Python中是这样的,数值10在内存中开辟一块空间来存放数据10,然后用a去引用这个10,所以这里a相当于一个标签,如果a被重新赋值了,相当于a又指向了另一个地址,比如a = 1000,那么a指向了数据1000的地址,在这点与C语言有很大的不同。

 

所以相同的数据用不同的变量去引用,它们的地址一样,比如:

a = 123     b = 123

然后我们输出id(a)和id(b)会发现这两个值完全一样

Python中的复数

   在Python中复数类型的虚部用j表示的,比如a = 3 + 4j

可以直接进行计算。

 

Python中序列的基本操作

     

(1)len()    求序列的长度

(2)+        序列拼接

(3)*        重复序列元素

(4)in       判断元素是否在序列中

(5)max()与min()    返回序列的最大值和最小值

(6)compare(str1,str2)   str1小于str2返回-1,等于返回0,大于返回1

 

元组

  a,b,c = (1,2,3)

  t = (“name”,30,”school”)

 

列表  

  list = [“name”,30,”school”]

可以看出,元组是用(),而列表用[],另外在元组中不能改变单个元素的值,而列表可以。

Python里面增加了**运算符和//运算符

**用于幂的计算,比如计算2的3次方,就直接a=2**3

>>> a = 2**3

>>> print a

8

>>>

//用于向下取模,主要用于浮点数,比如3//1.7 = 1.0

>>> a = 3//1.7

>>> print a

1.0

>>>

数字类型的内建函数

转换函数:将其他类型的数字转换为相应类型

int()、long()、float()、complex()

bool()

>>> a = 6

>>> b=complex(a)

>>> print b

(6+0j)

>>>

功能函数:

abs(num) 绝对值

coerce(num1,num2) 将num1和num2转换为同一类型,然后以一个元组的形式返回

>>> a=3.14159

>>> b=100

>>> print coerce(a,b)

(3.14159, 100.0)

>>>

divmod(num1,num2) 获得商和余数的元组

>>> a=9

>>> b=6

>>> print divmod(a,b)

(1, 3)

>>>

pow(num1,num2,mod=1) 快速幂取模运算

>>> a=2

>>> b=3

>>> print pow(a,b,5)

3

round(flt,ndig=1) 对浮点型进行四舍五入运算

>>> print round(3.1415926,4)

3.1416

>>>

列表类型内建函数

list.append(obj) 向列表中添加一个对象obj

list.count(obj) 返回一个对象obj在列表中出现的次数

list.extend(obj) 把序列obj中的内容添加到列表中

list.index(obj,i=0,j=len(list)) 返回list[k]

list.insert(index,obj) 在index位置插入对象obj

list.pop(index=-1) 删除并返回指定位置的对象,默认是最后一个对象

list.remove(obj) 从列表中删除对象obj

list.reversed()

list.sort()


>>> arr = [1,1,5,6,9,7,3,2,11,56,45,78,100,55,0,5,9,10]

>>> arr.append(89)

>>> print arr

[1, 1, 5, 6, 9, 7, 3, 2, 11, 56, 45, 78, 100, 55, 0, 5, 9, 10, 89]

>>> print arr.count(5)

2

>>> arr1 = [123,456,789]

>>> arr.extend(arr1)

>>> print arr

[1, 1, 5, 6, 9, 7, 3, 2, 11, 56, 45, 78, 100, 55, 0, 5, 9, 10, 89, 123, 456, 789]

>>> arr.insert(1,999)

>>> print arr

[1, 999, 1, 5, 6, 9, 7, 3, 2, 11, 56, 45, 78, 100, 55, 0, 5, 9, 10, 89, 123, 456, 789]

>>> arr.pop(0)

1

>>> print arr

[999, 1, 5, 6, 9, 7, 3, 2, 11, 56, 45, 78, 100, 55, 0, 5, 9, 10, 89, 123, 456, 789]

>>> arr.remove(999)

>>> print arr

[1, 5, 6, 9, 7, 3, 2, 11, 56, 45, 78, 100, 55, 0, 5, 9, 10, 89, 123, 456, 789]

>>> arr.sort()

>>> print arr

[0, 1, 2, 3, 5, 5, 6, 7, 9, 9, 10, 11, 45, 55, 56, 78, 89, 100, 123, 456, 789]

>>>

列表有容器和可变特性

堆栈—后进先出

list.append() 向队列尾部添加

list.pop() 从队列尾部删除

队列—先进先出

list.append() 向队列尾部添加

list.pop(0) 从队列头部删除


字典类型:


访问字典中的值

通过键访问相应的值 dict2['name']

访问字典的键 dict2.keys(),返回一个列表

访问字典的值 dict2.values(), 返回一个列表

遍历一个字典

执行中字典的键不能被改变

删除字典元素和字典 del dict2[name] del dict2

>>> dict = {'name':'goujinping','age':'21','sex':'man','school':'NEFU'}

>>> print dict

{'age': '21', 'school': 'NEFU', 'name': 'goujinping', 'sex': 'man'}

>>> dict['age']

'21'

>>> print dict['name']

goujinping

>>> print dict['age']

21

>>> for key in dict.keys():

print key

age

school

name

sex

>>> for value in dict.values():

print value

21

NEFU

goujinping

man

>>> del dict['sex']

>>> print dict

{'age': '21', 'school': 'NEFU', 'name': 'goujinping'}

>>> del dict['school']

>>> print dict

{'age': '21', 'name': 'goujinping'}

>>> del dict

>>> print dict

<type 'dict'>

>>>

以上是 Python基础语法(Python基础知识点) 的全部内容, 来源链接: utcz.com/z/325590.html

回到顶部