Python 笔记第一部分:让电脑做做计算
Python 简单交互
编程的基本思路就是 IPO。Input 获取数据,Process 逻辑计算,Output 显示结果。要学习pyton首先要明白pthon如何实现人机交互。
# 复读机
## 输入你想告诉电脑的话
input_message = input('你想说:')
## 电脑返回相同的话
print('电脑说:', input_message)
## 或者
print('电脑说:'+input_message)
## 或者
print('电脑说:{}'.format(input_message))
感受 Python 中的内存,变量
接下来我们需要知道我们的python是怎样处理数据的。首先我们需要把数据储存在内存中开辟的一个空间中。然后我们用一个 变量 指向这个数据存储的位置。修改的时候只需要把变量中的位置信息改成新的数据,然后python会自动释放原来数据所在位置的内存空间。注:变量是关联一个对象的标识符。
# 创建变量
name_of_hunan ='湖南'
name_of_hubei='湖北'
# 修改变量
name_of_hunan='湖南省'
name_of_hunan=name_of_hubei
理解上面这段代码最好方法就是构造 内存图。
引用计数 技术,每一个数据有一个计数,记录的是和它关联的变量的数量。如果没有关联变量了,也就是计数等于0了,数据就会被销毁,内存空间被释放。del
关键字就是用来删除变量的,形象一点就是上图中的小叉叉。
# '湖南' '湖南省' 两个字符串的计数已经是0,已经被销毁
del name_of_hunan # '湖北' 这个字符串数据的计数减小为1
del name_of_hubei # '湖北' 这个字符串数据的计数减小为0,被销毁
变量给变量,传递的是变量中的地址,变化的是对应数据的引用计数。
管理 Python 中的类型
关于python的类型,python的变量是没有类型的,但是变量指向的那些个数据是有类型的。如果没有准确的变量名称,很容易搞混变量指向的数据的类型。所以命名的时候要注意名称的意义。
类型 | 举例 |
---|---|
字符串 str | ‘你好’ 或者 “你好” |
整形 int | 12、123、3242 |
浮点型 float | 1.232、2.、3.1415 |
布尔 bool | True、False |
类型转换 是把一个类型的数据根据规则转换成另一个类型的过程。语法是结果=待转类型(待转数据)
举例int('8')
返回的是整形8
。需要注意的是转换规则是要记住的,像是向下取整这类的规则,和过去在数学中的四舍五入的思想有差异的。
字面值 就是如何写一个数据。
- int 类型的字面值:十进制(0 ~ 9)、二进制(使用 0b 修饰一个数字,0 ~ 1)、八进制(使用 0o 修饰一个数字,0 ~ 8)、十六进制(使用0x修饰一个数字,0 ~ 9 a ~ f)。
- float 类型的字面值:小数、科学计数法(12e-1 == 1.2)。
- str 类型的字面值:’ ‘、" “、”"" “”"(可见即所得)、’’’ ‘’’。引号冲突的时候可以换着用。
基本数据处理,也就是计算
接下来是python中的数学 运算符 :加+、减-、乘*、小数除/、整数除//、取余%、幂**。
增强运算符:加等于+=、减等于-=、乘等于*=、小数除等于/=、整数除等于//=、取余等于%=、幂等于**=。a=a+3
等价于a+=3
。
比较运算符返回一个bool类型:>、>=、<、<=、==、!=。
逻辑运算符是处理bool类型的。与and、或or、非not。这里我们有一个短路运算的规则,对于and
只要出现了一个False
其他的就不看了,直接返回 False
。
按位与&、按位或|、按位取反~、按位异或^。
这些个运算符的 优先级 不需要刻意去记忆,是符合人的常识的。多练习就好。
python 的流程控制
选择语句,循环语句,跳转语句。
选择语句 可以让代码根据条件,有选择性的执行,使用 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 在之前的判断条件已经满足的情况下不会再进行判断和处理,会直接跳过的。
条件表达式 可以把几行的条件语句合并成一行。语法是:变量 = 结果1 if 条件 else 结果2。
真值表达式 是很多程序员很喜欢的一种写法。就是说pyhton语言会自动将非bool类型的转换成bool类型。转换结果为False只有这几个:0、0.0、""、None。
循环语句 是为了让电脑不停的运行一段代码,其中包括 while 循环和 for 循环两种。
while 条件:
# 满足条件执行的语句
else:
# 不满足条件执行的语句
for 变量列表 in 可迭代对象:
# 语句块1
else:
# 语句块2
可迭代对象 包括列表、生成器,容器类型。range(开始,结束,间隔)
函数就是最常用的整数生成器,他返回一个计数器。开始默认为0,间隔默认为1,可以省略。
else子句可以省略。在循环体内用break跳转语句跳出循环时,else子句不执行。实现了对于循环结束出口的判断。所以如果循环体内没有break,else也没有必要加了。
除了break跳转语句,我们还有一个continue跳转语句,可以实现跳过本次循环,不再运行接下来的代码的功能。continue 可以帮助程序减少 if 的嵌套。
补充
python 交换数据不需要借助第三方,a,b=b,a
这样就可以成功交换了。
python 中的折行符是 \
,允许把一行代码拆成好多行。
学会代码调试是程序员的必要能力。调试是让程序中断,逐句审查程序执行过程以及变量取值的操作z。
月份公式:28 + (month + month // 8) % 2 + 2 % month + 2 * 1 // month
小贴士
- 在不知道怎么写的时候先不要开始敲代码,可以先把思路写下来。
- 有什么问题及时上网查找教程。w3cschool、菜鸟教程 之类的。
- 画图永远是最好的整理思维的方法。
- 在编程的时候经常思考如何节省内存,会对学习python有帮助。
博主简介:
座右铭:始于兴趣,源于热爱,成于投入。
爱丁堡大学 人工智能专业。热爱读书和写作,虽然写得不好但还会一直写。喜爱电音的渣渣音乐家,手不是很残的业余画手,有点热心过头的朋友。
所有文章都在个人博客上:discover304.top
也有一些在 CSDN 上:discover304
公众号:白泽百泽(注:内容和博客是一样的)