基本语法
1. 缩进
- 使用四个空格来表示每级的缩进。
age = int(input("请输入你的年龄: "))
if age < 18:
print("未成年")
print("不能进")
print("这句话在if语句块的外面。")
2. 控制语句
- if语句
- 当条件成立时运行语句块。经常与else, elif(相当于else if) 配合使用。
- for语句
- 遍历列表、字符串、字典、集合等迭代器,依次处理迭代器中的每个元素。
- while语句
- 当条件为真时,循环运行语句块。
- try语句
- 与except,finally配合使用处理在程序运行中出现的异常情况。
- class语句:用于定义类型。
- def语句:用于定义函数和类型的方法。
- pass语句:表示此行为空,不运行任何操作。
- assert语句:用于程序调试阶段时测试运行条件是否满足。
- with语句
- Python2.6以后定义的语法,在一个场景中运行语句块。比如,运行语句块前加密,然后在语句块运行退出后解密。
- yield语句
- 在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本以后。这个语句变成一个运算符。
- raise语句:制造一个错误。
- import语句:导入一个模块或包。
- from … import语句:从包导入模块或从模块导入某个对象。
- import … as语句:将导入的对象赋值给一个变量(相当于起别名)。
- in语句:判断一个对象是否在一个字符串/列表/元组里。
3. 表达式
- Python可以使用and, or, not表示逻辑运算。
- is, is not用于比较两个变量是否是同一个对象。in, not in用于判断一个对象是否属于另外一个对象。
- Python使用lambda表示匿名函数
add = lambda x, y : x + y
add(3,2)
- 切割功能,支持切割操作的类型有str, bytes, list, tuple。
nums = [1, 3, 5, 7, 8, 13, 20]
nums[2:5]#结果:[5, 7, 8]
#从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素。
nums[1:] #结果:[3, 5, 7, 8, 13, 20]
#切割到最后一个元素。
nums[:-3] #结果: [1, 3, 5, 7]
#从最开始的元素一直切割到倒数第3个元素。
nums[:] #结果: [1, 3, 5, 7, 8, 13, 20]
#返回所有元素。改变新的列表不会影响到nums。
nums[1:5:2] #结果: [3, 7]
#从下标为1的元素切割到下标为5的元素,且步长为2。
4. 函数
- Python的函数支持递归、默认参数值、可变参数,但不支持函数重载。
def function(a,b):
...
5. 对象的方法
- 对象的方法是指绑定到对象的函数.当定义对象方法时,必须显式地定义第一个参数,一般该参数名都使用self,用于访问对象的内部数据。这里的self相当于C++, Java里面的this变量,但是我们还可以使用任何其它合法的参数名,比如this 和 mine 等,
class Fish:
def eat(self,food):
if food is not None:
self.hungry=False
class User:
def __init__(myself,name):
myself.name=name
#构造Fish的实例:
f=Fish()
#以下两种调用形式是等价的:
Fish.eat(f,"earthworm")
f.eat("earthworm")
u=User('username')
print(u.name)
**注:**一些以"_ "开始并以“ _”结束的特殊方法名,它们用于实现运算符重载和实现多种特殊功能。
6. 数据类型
类型 | 描述 | 例子 | 备注 |
str(string/字符串) | 一个由字符组成的不可更改的有序串行。 | ‘Wikipedia’“Wikipedia”""“Spanningmultiplelines”"" | 在Python 3.x里,字符串由Unicode字符组成 |
bytes(字节) | 一个由字节组成的不可更改的有序串行。 | b’Some ASCII’b"Some ASCII" | 在Python 2.x里,bytes为str的一种 |
list(列表) | 可以包含多种类型的可改变的有序串行 | [4.0, ‘string’, True] | 无 |
tuple(元组) | 可以包含多种类型的不可改变的有序串行 | (4.0, ‘string’, True) | 无 |
set, frozenset | 与数学中集合的概念类似。无序的、每个元素唯一。 | {4.0, ‘string’, True}frozenset([4.0, ‘string’, True]) | 无 |
dict(字典) | 一个可改变的由键值对组成的无序串行。 | {‘key1’: 1.0, 3: False} | 无 |
int(整数) | 精度不限的整数 | 42 | 无 |
float(浮点数) | 浮点数。精度与系统相关。 | 3.1415927 | 无 |
complex | 复数 | 3+2.7j | 无 |
bool | 逻辑值。只有两个值:真、假 | TrueFalse | 无 |
builtin_function_or_method | 自带的函数,不可更改也不可增加 | printinput | 无 |
type(类型) | 显示某个值的类型,用type(x)获得 | type(1) ->type(‘1’) -> | 无 |
range | 按顺序排列的数 | range(10)…list(range(10))->[0,1,2,3,4,5,6,7,8,9]range(1,10)…list(range(1,10))->[1,2,3,4,5,6,7,8,9]range(1,10,2)…list(range(1,10,2))->[1,3,5,7,9] | 在Python 2.x中,range为builtin_function_or_method,获得的数为lis |
7. 数学运算
- Python使用与C、Java类似的运算符,支持整数与浮点数的数学运算。同时还支持复数运算与无穷位数(实际受限于计算机的能力)的整数运算。除了求绝对值函数abs()外,大多数数学函数处于math和cmath模块内。前者用于实数运算,而后者用于复数运算
import math
print(math.sin(math.pi/2))
#结果 1.0