【Python基础学习篇】Python基本语法

一、Python的文件类型

Python的文件类型主要分为3种,分别是源代码、字节代码和优化代码。

1、源代码

以py为扩展名

2、字节代码

Python源文件经过编译后生成扩展名为pyc的文件,pyc是编译过的字节文件。这种文件不能使用文本编辑工具打开或修改。

下面这段脚本可以把hello.py文件编译为hello.pyc文件

import py_compile
py_compile compile("hello.py")

将此脚本保存为以py为扩展名的文件,运行后即可得到hello.pyc文件

3、优化代码

经过优化的源文件生成扩展名为pyo的文件。pyo类型的文件需要命令行工具生成。pyo文件也不能使用文本编辑工具打开或修改。

例子:

用下面的步骤把hello.py文件编译成hello.pyo文件

python -O -m py_compile hello.py

-O:表示生成优化代码;

-m:表示把导入的py_compile模块作为脚本运行。编译hello.pyo需要调用py_compile模块中的compile()方法。

二、Python的编码规则

1、命名规则

变量名的首字符必须是字母或下划线,首字母之外的字符可以由字母、数字或下划线组成,并且不能使用Python的保留字。

常见的规则:

(1)变量名、包名、模块名

变量名通常由字母和下划线组成,包名、模块名通常用小写字母。

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#变量、模块名的命名规则
#Filename:ruleModule.py
‘‘‘
#Filename:ruleModule.py用于声明模块的名称,模块名用小写字母,也可以不指定模块名,以py后缀的文件就是一个模块。模块名就是文件名。
‘‘‘
_rule = "rule infornation"#定义了一个全局变量_rule

(2)类名、对象名

类名首字母用大写,其他字母采用小写。对象名用小写字母。类的属性和方法名以对象作为前缀,对象通过操作符“.”访问属性和方法。类的私有变量、私有方法以两个下划线作为前缀。

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#变量、模块名的命名规则
class Student: #类型用大写字母
__name = "" #私有实例变量前必须有两个下划线
def __int__(self,name):
    self __name = name
def getName(self):#方法名首字母用小写,其后每个单词的首字母用大写
    return self __name
if __name__ == "__main__"
  student = Student("Lee")#对象名用小写字母
print student.getName()

(3)函数名

函数名通常采用小写,并用下划线或单词首字母大写来增加名称的可读性,导入的函数以模块作为前缀。

例子:

randrange()的声明如下:

randrange(start,stop[,step])

start:表示生成随机数所在范围的开始数字

stop:表示生成随机数所在方位的结束数字,但不包括数字stop

step:从start开始往后的步数。生成的随机数在[start,stop - 1]的范围内,取值等于start + step

例如:

randrange(1,9,2)随机数范围在1、3、5、7之间取得。

范例:

定义一个行数compareNum(),该函数用于比较两个字的大小,并返回对应的结果。

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
#函数中的命名规则
import random #导入random模块
def compareNum(num1,num2):#定义函数compareNum
if(num1 > num2):
    return 1
elif(num1==num2):
    return 0
else:
    return -1
num1 = random.randrange(1,9)#调用random模块的randrange()返回两个随机数
num2 = random.randrange(1,9)
print ("num1 =",num1)
print ("num2 =",num2)
print (compareNum(num1,num2))
2、代码缩进和冒号

Python使用冒号和代码缩进来区分代码之间的层次。

3、模块导入的规范

模块是类或函数的集合,用于实现某个功能。在Python中,如果需要在程序中调用标准库或其他第三方库的类时,需要先用import或from...import...语句导入相关的模块。

(1)import语句

例子:

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
import sys #sys模块是处理系统环境的函数的集合。
print (sys.path) #默认情况下会查找sys.path返回的目录列表,列表是Python内置的数据结构,定义了一组数据,通常用来作为参数或返回值
print (sys.argv) #sys.argv是存储输入参数的列表。默认情况下,argv自带的参数是文件名

输出结果:

---------- python2.7 ----------
[‘C:\\Users\\Administrator\\Desktop‘, ‘C:\\Windows\\system32\\python27.zip‘, ‘D:\\Python27\\DLLs‘, ‘D:\\Python27\\lib‘, ‘D:\\Python27\\lib\\plat-win‘, ‘D:\\Python27\\lib\\lib-tk‘, ‘D:\\Python27‘, ‘D:\\Python27\\lib\\site-packages‘]
[‘Noname1.py‘]

输出完成 (耗时 0 秒) - 正常终止

(2)from...import...语句

首先解释一下命名空间的概念。命名空间是指标识符的上下文。相同名称的标识符可以在多条命名空间中定义,命名空间中可以定义任何标识符,并且保证这些标识符不会与任何已有的标识符发生冲突。

使用from...import...语句导入与import语句导入有所不同,区别是前者只导入模块中的一部分内容,并在当前的命名空间中创建导入对象的引用;而后者在当前程序的命名空间中创建导入模块的引用,从而可以使用“类名.属性”的方式调用。例如import sys后,可以在当前文件中调用sys.path

例子:

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
#不规范导入方式
from sys import path
from sys import argv
print (path)
print (argv)

输出结果:

---------- python2.7 ----------
[‘C:\\Users\\Administrator\\Desktop‘, ‘C:\\Windows\\system32\\python27.zip‘, ‘D:\\Python27\\DLLs‘, ‘D:\\Python27\\lib‘, ‘D:\\Python27\\lib\\plat-win‘, ‘D:\\Python27\\lib\\lib-tk‘, ‘D:\\Python27‘, ‘D:\\Python27\\lib\\site-packages‘]
[‘Noname1.py‘]

输出完成 (耗时 0 秒) - 正常终止
4、使用空行分隔代码

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

例子:

创建一个类A,并在类A中定义funX()和funY()这两个方法

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2
#Author: [email protected]
class A:
    def funX(self):
        print ("funY()")
    def funY(self):
        print ("funX()")
if __name__ == "__main__":
    a = A()
    a.funX()
    a.funY()

输出结果:

---------- python2.7 ----------
funY()
funX()

输出完成 (耗时 0 秒) - 正常终止

5、正确的注释

注释的用法及其作用


注释的用法


作用

单行注释 说明一行语句的作用
块注释 说明一段代码的作用或者整个程序文件的功能
程序的跨平台 #!/usr/bin/python
中文注释的支持 # -*- coding=utf-8 -*-
调试程序 注释可以帮助程序员调试程序
6、语句的分隔

Python主要通过换行来识别语句的结束。

Python支持多行写一条语句,Python使用“\”作为换行符。

三、变量和常量

变量是计算机内存的一块区域,变量可以存储规定范围内的值,而且值可以改变。

常量时一块只读的内存区域,常量一块只读的内存区域,常量一旦初始化就不能修改。

1、变量的命名

变量名由字母、数字或下划线组成。变量名的首字符必须是字母或下划线,首字符之外的字符可以由字母、数字或下划线组成。

例如:

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
#正确的变量命名
var_1 = 1
print (var_1)
_var1 = 2
print (_var1)

输出结果:

---------- python2.7 ----------
1
2

输出完成 (耗时 0 秒) - 正常终止
2、变量的赋值

Python中的变量不需要声明,变量的赋值操作即是变量声明和定义的过程。每个变量在内存中创建,都包括变量的标识、名称和数据这些信息。

例如:

x = 1

如下所示:

Python中一次新的赋值,将创建一个新的变量。即使变量的名称相同,变量的标识并不相同。

例子:

演示Python的变量声明以及赋值操作。

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
#一次新的赋值操作,将创建一个新的变量
x = 1
print (id(x))
x = 2
print (id(x))

输出结果:

---------- python2.7 ----------
31030120
31030096

输出完成 (耗时 0 秒) - 正常终止

说明:调用函数id,输出变量x的标识。每个变量都有一个内部标识,便于变量的维护和管理。

例子:Python支持对一些变量同时赋值的操作

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
#给多个变量赋值
a = (1,2,3)
(x,y,z) = a
print ("x = ",x)
print ("y = ",y)
print ("z = ",z)

输出结果:

---------- python2.7 ----------
(‘x = ‘, 1)
(‘y = ‘, 2)
(‘z = ‘, 3)

输出完成 (耗时 0 秒) - 正常终止
3、局部变量

局部变量是只能在函数或代码段内使用的变量。函数或代码段一旦结束,局部变量的生命周期也将结束。局部变量的租用范围只在局部变量被创建的函数内有效。

例子:

如果文件1的fun()中定义了一个局部变量,则该局部变量只能被fun()访问。局部变量不能被fun2()访问,也不能被文件2访问。如图所示:

例如:

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
#局部变量
def fun():
    local = 1
    print local
local = local - 1

输出结果:

---------- python2.7 ----------
Traceback (most recent call last):
  File "Noname1.py", line 9, in <module>
    local = local - 1
NameError: name ‘local‘ is not defined

输出完成 (耗时 0 秒) - 正常终止

注意:

Python创建的变量就是一个对象,Python会管理变量的生命周期。Python对变量的回收采用的也是垃圾回收机制。

4、全局变量

全局变量是能够被不同的函数、类或文件共享的变量,在函数之外定义的变量都可以称为全局变量。全局变量可以被文件内部的任何函数和外部文件访问。

例如,如果文件1中定义了一个全局变量,文件1中的函数fun()可以访问该全局变量。此外,该全局变量也能被文件1以外的文件访问。如下:

全局变量通常在文件的开始处定义。

例如:定义两个全局变量_a、_b和两个函数add()、sub(),这两个函数调用全局变量执行加法和减法计算。

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
#在文件的开头定义全局变量
_a = 1
_b = 2
def add():
    global _a #引用全局变量
    _a = 3 #对全局变量_a重新赋值
    return "_a + _b =",_a + _b
def sub():
    global _b
    _b = 4
    return "_a - _b =",_a - _b
print (add())
print (sub())

输出结果:

---------- python2.7 ----------
(‘_a + _b =‘, 5)
(‘_a - _b =‘, -1)

输出完成 (耗时 0 秒) - 正常终止

如果不适用glocbal保留字引用全局变量,而直接对_a、_b赋值,将得到不正确的结果:

#!/usr/bin/env python
# -*- coding=utf-8 -*-
#Using GPL v2
#Author: [email protected]
#错误的使用全局变量
_a = 1
_b = 2
def add():
    _a = 3 #对全局变量_a重新赋值
    return "_a + _b =",_a + _b
def sub():
    _b = 4
    return "_a - _b =",_a - _b
print (add())
print (sub())

输出结果:

---------- python2.7 ----------
(‘_a + _b =‘, 5)
(‘_a - _b =‘, -3)

输出完成 (耗时 0 秒) - 正常终止

注意:

变量名相同的两个变量可能并不是同一个变量,变量的名称只是起标识的作用。变量出现的位置不同,变量的含义也不同。

可以把全局变量放在一个专门的文件中,这样便于统一管理和修改。

例如:

创建一个名为gl.py的文件

#全局变量
_a = 1
_b = 2

再创建一个调用全局变量的文件use_global.py

# -*- coding=utf-8 -*-
#Using GPL v2.7
#Author: [email protected]
#调用全局变量
import gl
def fun():
    print (gl._a)
    print (gl._b)
fun()

输出结果:

---------- python2.7 ----------
1
2
输出完成 (耗时 0 秒) - 正常终止
时间: 2024-10-13 06:33:07

【Python基础学习篇】Python基本语法的相关文章

python 基础学习之 python怎么制作第一个直方图 散点图 折线图 非常简单 利用python画图 python利用numpy画图 我用python制作第一个直方图 散点图 折线图

思路 首先声明 :非常简单  最简单的入门就是 直接拷贝几行代码看看效果 运行玩玩 注意: 本文采用窗口弹出运行显示的方式   可能需要网页显示图表 并且实时生成可能需要另找办法  暂时不处理. 安装numpy python文件导入numpy 复制几行代码 保存即可 在目录下 直接点击运行python文件  就会弹出一个类似cmd的小黑窗  另外再弹出一个绘制出来的图表 完成 关闭的时候 关闭图片  小黑窗自动回关闭. 部分效果图如下 代码参考 Python干货:分享Python绘制六种可视化图

【Python基础学习篇九】Python字符串

一.字符串的操作 字符串是Python的一种基本类型,字符串的操作包括字符串的格式化.字符串的截取.过滤.合并.查找等操作. 二.字符串的格式化 Python将若干值插入到带有"%"标记的字符串中,从而可以动态的输出字符串. 字符串的格式化语法如下: "% s" % str1 "%s %s" % (str1,str2) 例子: #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v2.7

Python基础学习之语句和语法

语句和语法 python语句中有一些基本规则和特殊字符: 井号键"#"表示之后的字符为python注释: 三引号(''' ''')可以多行注释 换行"\n"是标准的行分隔符(通常一个语句一行): 反斜杠"\"继续上一行: 分号":"将两个语句连接在一行中 冒号":"将代码的头和体分开: 语句(代码块)用缩进的方式体现: 不同缩进深度分隔不同的代码块: python文件以模块的形式组织. 1.注释(#) Py

【Python基础学习篇十】Python正则表达式(2015-01-01)

一.正则表达式简介 正则表达式用于文本匹配的工具,在源字符串中查找与给定的正则表达式相匹配的部分.一个正则表达式是由字母.数字和特殊字符组成的.正则表达式中有许多特殊的字符,这些特殊字符是构成正则表达式的要素. 1.正则表达式中的特殊字符: 2.正则表达式中的常用限定符: 利用{}可以控制字符重复的次数. 例如,\d{1,4}表示1位到3位的数字: 某些地区的电话号码是8位数,区号也有可能是3位或4位数字. \d{3}-\d{8}|\d{4}-\d{7} 3.限定符与"?"的组合 二.

【Python基础学习篇】Python字典

字典(Dictionary)是由"键-值"对组成的集合,字典中的"值"通过"键"来引用. 一.字典的创建 字典由一系列的"键-值"(key-value)对组成,"键-值"对之间用"逗号"隔开,并且被包含在一对花括号中. 创建字典的格式如下: dictionary_name = {key1:value1,key2:value2,...} 如果需要创建一个空的字典,只需要一对花括号即可,如下

【Python基础学习篇八】Python函数

函数是一段可以重复多次调用的代码,通过输入的参数值,返回需要的结果. 一.函数的定义 函数的定义使用保留字def定义.函数在使用前必须定义,函数的类型即返回值的类型. Python函数定义的格式如下: def 函数名 (参数1[=默认值1],参数2[=默认值2]...): ... return 表达式 函数名可以是字母.数字或下划线组成的字符串,但不能以数字开头.函数的参数放在一对圆括号中,参数的个数可以有一个或多个,参数之间用逗号隔开,这种参数称之为形式参数. 例子: #!/usr/bin/e

【Python基础学习篇】Python序列

序列是具有索引和切片功能的集合.元组.列表和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力,因此元组.列表和字符串都属于序列. 例子:序列的索引功能 #!/usr/bin/env python # -*- coding=utf-8 -*- #Using GPL v3.3 #Author: [email protected] #索引操作 tuple = ("apple","banana","grape","orange&

【Python基础学习篇】Python列表

列表(List)通常作为函数的返回类型.列表和元组相似,也是由一组元素组成,列表可以实现添加.删除和查找操作,元素的值可以被修改. 一.列表的创建 列表是由一系列元素组成,所有的元素都被包含在一对方括号中.列表创建后,可以执行添加.删除或修改操作. 列表的创建格式如下所示: list_name = [元素1,元素2,...] 列表的添加可以调用append(),该方法的声明如下所示: append(object) 其中,object可以是元组.列表.字典或任何对象.append()每次添加的新元

【Python基础学习篇】Python元组

元组是Python中内置的一种数据结构.元组由不同的元素组成,每个元素可以存储不同类型的数据,如字符串.数字甚至元组.元组是写保护的,即元组创建后不能再做任何修改操作,元组通常代表一行数据,而元组中的元素代表不同的数据项. 一.元组的创建 Tuple(元组)由一系列元素组成,所有元素被包含在一对圆括号中.创建元组时,可以不指定元素的个数,相当于不定长的数组,但是一旦创建后就不能修改元组的长度. 元组创建的格式如下所示: tuple_name = (元素1,元素2,...) 例子:元组的初始化 t