Python 3 基本语法

一、介绍

  1. Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
  2. Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,具有比其他语言更有特色语法结构。
  3. Python 是一种解释型语言:这意味着开发过程中没有了编译这个环节。类似于 PHP 和 Perl 语言。
  4. Python 是交互式语言:这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
  5. Python 是面向对象语言:这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  6. Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

二、特点

  1. 易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
  2. 易于阅读:Python 代码定义的更清晰。
  3. 易于维护:Python 的成功在于它的源代码是相当容易维护的。
  4. 广泛的标准库:Python 的最大的优势是丰富的库,跨平台的,在 UNIX,Windows 和 Macintosh 兼容很好。
  5. 互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
  6. 可移植:基于其开放源代码的特性,Python 已经被移植(也就是使其工作)到许多平台。
  7. 可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用 C 或 C++ 完成那部分程序,然后从你的 Python 程序中调用。
  8. 数据库:Python 提供所有主要的商业数据库的接口。
  9. GUI 编程:Python支持 GUI 编程,可以创建和移植到许多系统调用。
  10. 可嵌入: 可以将 Python 嵌入到 C/C++ 程序,让程序的用户获得"脚本化"的能力。

三、基础语法

1. 编码

默认情况下,Python3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。当然,也可以为源码文件指定不同的编码:

# -*- coding: cp-1252 -*-

上述定义允许在源文件中使用 Windows-1252 字符集中的字符编码,对应适合语言为保加利亚语、白俄罗斯语、马其顿语、俄语、塞尔维亚语。

2. 标识符

  • 首字符必须以字母(a-z, A-Z)或下划线 _ 开头 。
  • 其他的部分由字母、数字和下划线组成。
  • 大小写敏感。
  • 长度无硬性限制,建议简洁。
  • 禁止使用保留关键字,如 if、for、class。

合法标识符:

age = 25
user_name = "Alice"
_total = 100
MAX_SIZE = 1024
calculate_area()
StudentInfo
__private_var

非法标识符:

2nd_place = "silver"    # 错误:以数字开头
user-name = "Bob"       # 错误:包含连字符
class = "Math"          # 错误:使用关键字
$price = 9.99           # 错误:包含美元符
for = "loop"            # 错误:使用关键字

Python 3 允许使用 Unicode 字符作为标识符,可以用中文作为变量名,非 ASCII 标识符也是允许的了。

姓名 = "张三"  # 合法
π = 3.14159   # 合法

3. 关键字

Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> 
类别关键字说明
逻辑值True布尔真值
False布尔假值
None表示空值或无值
逻辑运算and逻辑与运算
or逻辑或运算
not逻辑非运算
条件控制if条件判断语句
elif否则如果(else if 的缩写)
else否则分支
循环控制for迭代循环
while条件循环
break跳出循环
continue跳过当前循环的剩余部分
异常处理try尝试执行代码块
except捕获异常
finally无论是否发生异常都会执行的代码块
raise抛出异常
函数定义def定义函数
return从函数返回值
lambda创建匿名函数
类与对象class定义类
del删除对象引用
模块导入import导入模块
from从模块导入特定部分
as为导入的模块或对象创建别名
作用域global声明全局变量
nonlocal声明非局部变量(用于嵌套函数)
异步编程async声明异步函数
await等待异步操作完成
其他assert断言,用于测试条件是否为真
in检查成员关系
is检查成员身份(是否是同一个对象)
pass空语句,用于占位
with上下文管理器,用于资源管理
yield从生成器函数返回值

4. 注释

Python中单行注释以 # 开头,多行注释可以用多个 # 号,还有 ‘’’ 和 “”":

# 第一个注释
# 第二个注释
 
'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""

5. 行与缩进

python 最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:

if True:
    print ("True")
else:
    print ("False")

6. 多行语句

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句,例如:

total = item_one + \
        item_two + \
        item_three

在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \,例如:

total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']

7. 数字类型(Number)

python 中数字有四种类型:整数、布尔型、浮点数和复数。

  • int (整数):如 1。
  • bool (布尔):如 True。
  • float (浮点数):如 1.23、3E-2
  • complex (复数):复数由实部和虚部组成,形式为 a + bj,其中 a 是实部,b 是虚部,j 表示虚数单位。

8. 字符串(String)

  • Python 中单引号 ’ 和双引号 " 使用完全相同。
  • 使用三引号(‘’’ 或 “”")可以指定一个多行字符串。
  • 反斜杠 \ 可以用来转义,使用 r 可以让反斜杠不转义。 如 r"this is a line with \n" 则 \n 会显示,并不换行。
  • 按字面意义级联字符串,如 "this " "is " “string” 会被自动转换为 this is string。
  • 字符串可以用 + 运算符连接在一起,用 * 运算符重复。
  • Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
  • Python 中的字符串不能改变。
  • Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
  • 字符串切片 str[start:end],其中 start(包含)是切片开始的索引,end(不包含)是切片结束的索引。
  • 字符串的切片可以加上步长参数 step,语法格式如下:str[start : end : step]

9. 空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

10. 等待用户输入

执行下面的程序在按回车键后就会等待用户输入:

input("\n\n按下 enter 键后退出。")

以上代码中 ,\n\n 在结果输出前会输出两个新的空行。一旦用户按下 enter 键时,程序将退出。

11. 同一行显示多条语句

Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割,以下是一个简单的实例:

import sys; x = 'runoob'; sys.stdout.write(x + '\n')

使用脚本执行以上代码,输出结果为:

runoob

12. 多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。像 if、while、def 和 class 这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。

# 子句
###############
if expression : 
   suite
###############
elif expression : 
   suite 
else : 
   suite

13. print 输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=“”:

x="a"
y="b"
# 换行输出
print(x)
print(y)
print('---------')
# 不换行输出
print(x, end=" ")
print(y, end=" ")
print()

执行结果:

a
b
---------
a b

14. import 与 from…import

在 python 用 import 或者 from…import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *

15. 命令行参数

很多程序可以执行一些操作来查看一些基本信息,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. ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值