【Python】第一部分 全系列导航见:Python教程整理
在不知道怎么写的时候先不要开始敲代码,可以先把思路写下来。
编程的基本思路就是 IPO。Input 获取数据,Process 逻辑计算,Output 显示结果。要学习pyton首先要明白pthon如何实现人机交互。
# 复读机
# 输入你想告诉电脑的话
input_message = input('你想说:')
# 电脑返回相同的话
print('电脑说:', input_message)
# 或者
print('电脑说:'+input_message)
# 或者
print('电脑说:{}'.format(input_message)接下来我们需要知道我们的python是怎样处理数据的。首先我们需要把数据储存在内存中开辟的一个空间中。然后我们用一个 变量 指向这个数据存储的位置。修改的时候只需要把变量中的位置信息改成新的数据,然后python会自动释放原来数据所在位置的内存空间。注:变量是关联一个对象的标识符。
# 创建变量
name_of_hunan ='湖南'
name_of_hubei='湖北'
# 修改变量
name_of_hunan='湖南省'
name_of_hunan=name_of_hubei理解上面这段代码最好方法就是构造 内存图。

引用计数 技术,每一个数据有一个计数,记录的是和它关联的变量的数量。如果没有关联变量了,也就是计数等于0了,数据就会被销毁,内存空间被释放。del 关键字就是用来删除变量的,形象一点就是上图中的小叉叉。
引用计数计数存在问题。对于循环引用的数据(我指向你,你指向我),引用计数无法归零,内存无法被释放。 解决方案(Python内存回收机制):
如何减少内存使用:
# '湖南' '湖南省' 两个字符串的计数已经是0,已经被销毁
del name_of_hunan # '湖北' 这个字符串数据的计数减小为1
del name_of_hubei # '湖北' 这个字符串数据的计数减小为0,被销毁变量给变量,传递的是变量中的地址,变化的是对应数据的引用计数。
空间并不是直接就被释放了,如果内存满了,再释放。
关于python的类型,python的变量是没有类型的,但是变量指向的那些个数据是有类型的。如果没有准确的变量名称,很容易搞混变量指向的数据的类型。所以命名的时候要注意名称的意义。
类型 | 举例 |
|---|---|
字符串 str | ‘你好’ 或者 “你好” |
整形 int | 12、123、3242 |
浮点型 float | 1.232、2.、3.1415 |
布尔 bool | True、False |
类型转换 是把一个类型的数据根据规则转换成另一个类型的过程。语法是结果=待转类型(待转数据)举例int('8')返回的是整形8。需要注意的是转换规则是要记住的,像是向下取整这类的规则,和过去在数学中的四舍五入的思想有差异的。
字面值就是如何写一个数据。
类型标注技术:为了解决python语言变量没有类型,导致参数或返回值类型未知,进而导致pycharm编程环境无法给出提升的问题,我们引入了类型标注技术,一种注释。
# 常用的types标注
from types import ···
# 标记参数/变量
变量: 类名
# 标记返回值
def 函数名() -> 类名:
···
# 标注实例变量
self.实例变量 = 参数 # type: 类名小贴士:类型标注是个十分有用的技巧。
接下来是python中的数学 运算符 :加+、减-、乘*、小数除/、整数除//、取余%、幂**。
增强运算符:加等于+=、减等于-=、乘等于*=、小数除等于/=、整数除等于//=、取余等于%=、幂等于**=。a=a+3等价于a+=3。
比较运算符返回一个bool类型:>、>=、<、<=、==、!=。
逻辑运算符是处理bool类型的。与and、或or、非not。这里我们有一个短路运算的规则,对于and只要出现了一个False其他的就不看了,直接返回 False。
按位与&、按位或|、按位取反~、按位异或^。
这些个运算符的 优先级 不需要刻意去记忆,是符合人的常识的。多练习就好。
选择语句,循环语句,跳转语句。
选择语句 可以让代码根据条件,有选择性的执行,使用 if elif else。if 后加判断条件,如果满足就执行,如果不满足就跳过到之后的行。elif 上接 if 或 elif 然后加判断条件,表示 ‘否则如果满足’ 。最后是 else 在 elif 和 if 后面,表示否则。elif 子句可以有0个或多个。else 子句可以有0个或1个,且只能放在if语句的最后。
if 条件1:
语句块1
elif 条件2:
语句块2
else:
语句块3全部使用 if 的代码是不好的,会拖慢处理速度。elif 和 else 在之前的判断条件已经满足的情况下不会再进行判断和处理,会直接跳过的。
循环语句 是为了让电脑不停的运行一段代码,其中包括 while 循环和 for 循环两种。
while 条件:
# 满足条件执行的语句
else:
# 不满足条件执行的语句for 变量列表 in 可迭代对象:
# 语句块1
else:
# 语句块2else子句可以省略。
在循环体内用break跳转语句跳出循环时,else子句不执行。实现了对于循环结束出口的判断。所以如果循环体内没有break,else也没有必要加了。
除了break跳转语句,我们还有一个continue跳转语句,可以实现跳过本次循环,不再运行接下来的代码的功能。continue 可以帮助程序减少 if 的嵌套。
条件表达式 可以把几行的条件语句合并成一行。语法是:变量 = 结果1 if 条件 else 结果2。
真值表达式 是很多程序员很喜欢的一种写法。就是说pyhton语言会自动将非bool类型的转换成bool类型。转换结果为False只有这几个:0、0.0、""、None。
可迭代对象 包括列表、生成器,容器类型。range(开始,结束,间隔) 函数就是最常用的整数生成器,他返回一个计数器。开始默认为0,间隔默认为1,可以省略。
a,b=b,a 这样就可以成功交换了。\,允许把一行代码拆成好多行。28 + (month + month // 8) % 2 + 2 % month + 2 * 1 // month