python基础语法
语言分类
- 低级语言
面向机器的语言,包括机器语言、汇编语言
不同的机器不能通用,不同的机器需要不同的机器指令或者汇编程序 - 高级语言
接近自然语言和数学语言的计算机语言
高级语言首先要书写源程序,通过编译程序把源程序转换成机器指令的程序 - 1954年正式发布的Fortran语言是最早的高级语言,本意是公式翻译
基础语法
- 注释—— # 标注的文本
- 数字
- 整数
Python3开始不区分long和int,long被重命名为int,所以只有int了
进制0xa、0o10、0b10
bool,2个值True、False - 浮点数
1.2、3.1415、-0.12,1.46e9等价于1.46*109
本质上使用了C语言的double类型 - 复数,1+2j
-
字符串
使用 ’ " 单双引号引用的字符的序列
‘’'和""" 单双三引号,可以跨行、可以在其中自由的使用单双引号
r前缀:在字符串前面加上r或者R前缀,表示该字符串不做特殊的处理
f前缀:3.6版本开始,新增f前缀,格式化字符串 -
转义序列
\ \t \r \n ’ "
前缀r,把里面的所有字符当普通字符对待 -
缩进
未使用C等语言的花括号,而是采用缩进的方式表示层次关系
约定使用4个空格缩进 -
续行
在行尾使用
如果使用各种括号,认为括号内是一个整体,内部跨行不用 \ -
标识符
- 一个名字,用来指代一个值
- 只能是字母、下划线和数字
- 只能以字母或下划线开头
- 不能是python的关键字,例如def、class就不能作为标识符
- Python是大小写敏感的
约定:
不允许使用中文
不要使用歧义单词,例如class_
在python中不要随便使用下划线开头的标识符
- 常量
一旦赋值就不能改变值的标识符
python中无法定义常量 - 字面常量
一个单独的量,例如 12、“abc” 、‘2341356514.03e-9’ - 变量
赋值后,可以改变值的标识符
运算符Operator
-
算数运算符
(+ - * / % ** )
自然除/结果是浮点数,整除//。注:2.x中/和//都是整除
位运算符
& | ~ ^ << >>
常用方式:乘除2的倍数,32 // 8相当于 32 >> 3 -
原码
5 => 0b101,1 => 0b1 ,-1 => -0b1, bin(-1) -
反码
正数的反码与原码相同;负数的反码符号位不变其余按位取反 -
补码
正数的补码与原码相同;负数的补码符号位不变其余按位取反后+1 -
负数表示法
早期数字电路的CPU中的运算器实现了加法器,但是没有减法器,减法要转换成加法
负数在计算机中使用补码存储,-1的补码为1111 1111
5-1 => 5+(-1)直觉上是0b101-0b1,其实计算机中是0b101+0b11111111,溢出位舍弃
运算符
-
比较运算符
== != > < >= <=
返回一个bool值
1 < ‘1’ 1 == ‘1’
链式比较操作符
4>3>2 4>mynumber >=1 -
逻辑运算符
与或非 and or not -
短路运算符
and 如果第一个表达式为False,后面就没有必要计算了,这个逻辑表达式一定是False
or 如果第一个表达式True,后面没有必要计算了,这个逻辑表达式一定是True -
赋值运算符
a = min(3, 5)
+= -= *= /= %= 等
x = y = z = 10 -
成员运算符
in、not in -
身份运算符
is 、is not
运算符优先级(由高到低)
- 算数运算符 > 位运算符> 身份运算符 > 成员运算符 > 逻辑运算符
单目 > 双目
记不住,用括号
长表达式,多用括号,易懂、易读
if 判断语句
- if语句
if condition:
代码块
condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)
if 1<2: # if True:
print(‘1 less than 2’)
代码块
类似于if语句的冒号后面的就是一个语句块
在if、for、def、class等关键字后使用代码块
while循环
- 语法
while condition:
block
当条件满足即condition为True,进入循环体,执行block - 举例
flag=10
while flag:
print(flag)
flag -= 1
for循环
- 语法
for element in iterable:
block
当 可迭代对象 中有元素可以迭代,进入循环体,执行block - range函数
举例:打印1~10
for i in range(10):
print(i+1)
循环 continue语句
- 中断当前循环的当次执行,继续下一次循环
举例:计算10以内的偶数(for循环)
for i in range(10):
if not i%2:
print(i)
循环 break语句
- 终止当前循环
举例:计算1000以内的正整数被7整除的前20个数(for循环)
count = 1
for i in range(7, 1000, 7):
print(i)
if count == 20:
break
count += 1
循环 continue、break语句
- 总结
continue和break是循环的控制语句,只影响当前循环,包括while、for循环
如果循环嵌套, continue和break也只影响语句所在的那一层循环
continue和break 不是跳出语句块,所以 if cond: break 不是跳出if,而是终止if外的break所
在的循环
循环 else子句
- 语法
while condition:
block
else:
block
如果循环正常的执行结束,就执行else子句,即使循环都没有进去
如果使用break终止,else子句不会执行