Python基础(一)
Python是一种计算机程序设计语言。是一种动态的,强类型,面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发
Python基础语法
1,注释----#标注的文本
2,数字
整数,不区分long和int
进制0xa,0o10,0b10
bool,2个值True,False
浮点数
1.2,3.1415,-0.35,
复数,1+2i
转义序列
\\ \t \r \n \' \"
前面r,把里面的所有字符当普通字符对待
缩进 约定一个tab键 4个空格
续行 在行尾使用\ 如果使用各种括号,认为括号内是一个整体,内部跨行不用 \
标识符
(1)一个名字,用来指代一个值
(2)只能是字母,下划线和数字
(3)只能是以字母或下划线开头
(4)不能是Python的关键字,例如def,class就不能作为标识符
(5)Python大小写敏感
注:约定不使用中文,不允许使用歧义单词,例如class_, 不要随便使用下划线开头的标识符
常量
(1) 一旦赋值就不能改变值的标识符
(2)Python中无法定义常量
字面常量
一个单独的量,例如12,“abcdef”
变量
赋值后,可以改变值的标识符
运算符operator
算数运算符
+ - * / % **
自然除/结果是浮点数,整除// 在2版本中/和//都是整除
位运算符
& | ~ ^ << >>
常用方式:整除2的倍数,32//8 相当于32 >>3
原码,反码,补码,负数表示法
比较运算符
== != > < >= <=
返回一个bool值
1<'1' 1=='1'
链式比较操作符
逻辑运算符
短路运算符
and如果第一个表达式为False,后面就没有必要计算了,这个逻辑表达式一定是False
or如果第一个表达式True,后面没有必要计算了,这个逻辑表达式一定是True
运算符
赋值运算符
a = min(3,5)
+=, -=, *=, /=, %=等
x=y=z=10
成员运算符
in、not in
身份运算符
is、is not
表达式
由数字,符号,括号,变量等的组合
算数表达式
逻辑表达式
赋值表达式
Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义
内存管理
变量无须事先声明,也不需要指定类型,这是动态语言特性
Python编程中一般无须关心变量的存亡,一般也不用关心内存的管理
Python使用引用计数记录所有对象的引用数
当对象引用数变为0,它就可以被垃圾回收 GC
计数增加:
赋值给其它变量就增加引用数,例如x =3;y=z;z=[x,1]
实参传参,如foo(y)
计数减少:
函数运行结束时,局部变量就会被自动销毁,对象引用计数减少
变量被赋值给其它对象。例如x=3;y=x;x=4
有关性能的时候,就需要考虑变量的引用问题,但是该释放内存,还是尽量不释放内存,看需求
程序控制
顺序 分支 循环
单分支结构
if 语句
if condition:
代码块
condition必须是一个bool类型,这个地方有一个隐式转换bool(condition)
if 1 <2:
print(‘1 less than 2’)
代码块
类似于if语句的冒号后面的就是一个语句块
在if,for,def,class等关键字后使用代码块
False等价布尔值,相当于bool(value)
空容器 (空集合set, 空字典dict,空列表list,空元组tuple,
空字符串 None对象 0
循环-----while语句
语法
while condition:
block
当条件满足即condition为True,进入循环体,执行block
循环 ----for语句*
语法
for element in iteratable:
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)
for i in range(0,10,2):
print(i)
for i in range(0,10):
if i & 1:
continue
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所在的循环