python基础和python运算符
python基础和python运算符
阿豪学习python的第二天
该文章主要学习内容:
python运算符
注释
我们写的程序里,不光有代码,还要有很多注释。注释
有说明性质的、帮助性质的,它们在代码执行过程中相当于不存在,透明的。
- 单行注释
Python中,以符号'#'
为单行注释的开始,从它往后到本行的末尾,都是注释内容。快捷键:CTRL+/
1 | # 打印输出hello world |
- 多行注释
Python没有真正意义上的多行注释(块注释)语法。选中需注释的代码,再使用快捷键CTRL+/
1 | # 第一行注释 |
- 注释文档
在某些特定的位置,用三引号包括起来的部分,也被当做注释。
1 | """ |
注意:
很多时候,我们在一些py脚本文件的开头都能看到类似的以*#*开头的这样两行代码,它们不是注释,是一些设定
1 | #!/usr/bin/env python |
第一行:用于指定运行该脚本的Python解释器,Linux专用,windows不需要。env方式下,系统会自动使用环境变量里指向的Python。还有一种方式,#!/usr/bin/python3.6,这会强制要求使用系统中的python3.6解释器执行文件,这种方式不好,一旦你本地的Python3.6版本删除了,会出现找不到解释器的错误。无论两种方式的哪一种,都指的是在linux下使用
第二行:代码的编码方式。不是程序要处理的数据的编码方式,而是程序自己本身的字符编码。在Python3中,全面支持Unicode,默认以UTF-8编码,我们不用再纠结中文的问题,乱码的问题,所以本行其实可以不需要。但在Python2中,对字符的编码是个非常令人头疼的问题,通常都需要指定这么一行。如果要自定义别的编码类型的话,可以像这样:# – coding: cp-1252 –,但如果没有强制需求的话,不要自己作死,请坚持使用utf-8编码。
这里的-*-是什么意思呢?没意思,装饰美观好看而已。
语句与缩进
语句
在代码中,能够完整表达某个意思、操作或者逻辑的最短代码,被称为语句。
1 | a = 321 |
注意:python的标准语言不需要使用分号。简单的换行就表示语句已经结束。
代码块
为完成某一特定功能而联系在一起的一组语句构成一个代码块。有判断、循环、函数、类等各种代码块。代码块的首行通常以关键字开始,以冒号( : )结束。比如:
1 | if expression: |
缩进
Python最具特色的语法就是使用缩进来表示代码块
,不需要使用大括号
像PHP、JAVA等语言都是使用({})来表示代码块的。python一般用四个空格就是tab来缩进。在pycharm中tab自动回转成4个空格。在Linux环境中,如VIM编辑器,建议使用空格。
那么怎么才是正确的缩进方式
呢?
- 所有的普通语句,顶左开始编写,不需要缩进
- 所有的语句块,首行不用缩进,从冒号结束后开始下一行,都要缩进
- 直到该语句块结束,就退回缩进,表示当前块已结束
- 语句块可以嵌套,所以缩进也可以嵌套
多行语句: 前面是多条语句在一行,但如果一条语句实在太长,也是可以占用多行的,可以使用反斜杠()来实现多行语句
1 | string = "i love this country,"\ |
不到迫不得已,不要使用这种,该换行就换行。
pass语句
pass语句是占位语句,它什么都不做,只是为了保证语法的正确性而写。以下场景中,可以使用pass语句:
- 当你不知道后面的代码怎么写的时候
- 当你不需要写代码细节的时候
- 当语法必须,又没有实际内容可写的时候
- 其它的一些你觉得需要的场景
1 | def func(a,b): |
字符串的表示形式
在后面的章节中,会进行更深入的介绍,这里作为一个前期的知识铺垫。
abc
可能是个变量,但是"abc"
肯定是个字符串了。这里强调一下在编程语言中,所有的符号都是英文状态下的。
在python中单引号和双引号的作用完全相同。在其他语言中,单双引号还是有一定区别的。
原生字符串: 通过在字符串前加r或R,如 r”this is test \n”,表示这个字符串里的斜杠不需要转义,等同于自身
变量与常量
变量:在程序运行过程中,值会发生变化的量
常量:在程序运行过程中,值不会发生变化的量
无论是变量还是常量,在创建时都会在内存中开辟一块空间,用于保存它的值。
这里有一点需要注意的是,在python中是不需要声明类型的。这是根据Python的动态语言特性而来。变量可以直接使用,而不需要提前声明类型。
变量
变量的定义
把程序运算的中间结果临时存到内存里,以备后面的代码继续调用,这几个名字的学名就叫做“变量”。
变量的作用
变量用于存储要在计算机程序中引用和操作的信息。它提供了一种用描述性名称标注数据的方法,这样读者和我们自己就可以更清楚地理解我们的程序。
我们可以将变量看作保存信息的容器。它们的目的是在内存中标注和存储数据。然后,可以在整个程序中使用这些数据。
变量的创建
- Python 中的变量不需要声明类型
1 | >>> a = 4 |
这些变量都是不需要声明它的类型的,在C和Java中是必须要声明的。这里的=是赋值而不是等于的意思。每个变量在使用前都必须赋值,变量赋值以后才会被创建。如果一个变量没有赋值,直接用的话。系统会报出错误
这里的等号要理解并读作“赋值”,而不是“等于”,“赋值”是对变量的操作,而“等于”是对两个变量进行比较。
- 每个变量在使用前都必须赋值,变量赋值以后才会被创建
新的变量通过赋值的动作,创建并开辟内存空间,保存值。如果没有赋值而直接使用会抛出赋值前引用的异常或者未命名异常
1 | >>> a |
Python中,一切事物都是对象,变量引用的是对象或者说是对象在内存中的地址。(后续详解)
在Python中,变量本身没有数据类型的概念
通常所说的“变量类型”是变量所引用的对象的类型,或者说是变量的值的类型
1 | >>> a = 1 |
例子中,变量a在创建的时候,赋予了值为1的整数类型,然后又被改成字符串“haha”,再又变成一个列表,最后是个字典。变量a在动态的改变,它的值分别是不同的数据类型,这是动态语言的特点。
- “=”号这个赋值运算符是从右往左的计算顺序。
1
2
3
4
5>>> a = 1
>>> b = 2
>>> c = a + b # 先计算a+b的值,再赋给c
>>> c
3 - Python允许同时为多个变量赋值。
例如:输出a,b,c的值都为2
1 | >>> a = b = c = 2 |
例如:输出a,b,c的值分别为1,2,3
1 | >>> a,b,c = 1,2,3 |
变量创建
a = ‘ABC’时,Python解释器干了两件事情:
1.在内存中创建了一个‘ABC’的字符串对象;
2.在内存中创建了一个名为a的变量,并把它指向’ABC’。
思考
1 | a = 'Jack' |
执行a = ‘Jack’,解释器创建字符串‘Jack’对象和变量a,并把a指向‘Jack’对象;
执行b = a,解释器创建变量b,并且将其指向变量a指向的字符串‘Jack’对象;
执行a = ‘Tom’,解释器创建字符串‘Tom’对象,并把a改为指向‘Tom’对象,与b无关。
常量
常量的定义
常量就是不变的量,或者说在程序运行过程中不会改变的量。比如常用的数学常数圆周率就是一个常量。在Python中,通常用全部大写的变量名表示常量:
1 | PI = 3.14159265359 |
但事实上,从Python语法角度看,PI仍然是一个变量,因为Python根本没有任何机制保证PI不会被改变。你完全可以给PI赋值为10,不会弹出任何错误。所以,用全部大写的变量名表示常量只是一个习惯上的用法。
1 | >>> PI = 3.1415 |
- 注释语句缩进
pyhton注释
为什么会有注释?
我们写的程序里,不光有代码,还要有很多注释。
注释
有说明性质的,帮助性质的,它们在代码执行过程中相当于不存在,透明的
。目的:增加代码可读性
单行注释
python中以符号
#
为注释的开始,从它往后到本行的末尾,都是注释内容。快捷键:CTRL+/ (唱、跳、RAP、篮球 都知道吧🤭)
小练习:给你的 hello world 写个注释吧
多行注释
python中没有真正意义上的多行注释(块注释)语法。
选中需注释的代码块
,再使用快捷键:CTRL+/ (依旧是 唱、跳、RAP、篮球🤭)
小练习:实现同时进行多行注释暂时不需要的代码,以及再需要使用时取消注释
注释文档
- 在python中通常使用
三对引号
来注释文档,也可以认为时注释多行。
语句与缩进
语句
- 在代码中,能够
完整表达某个意思
、操作
或者逻辑
的最短代码,被称为语句
。
注意:python不需要使用分号。
简单的换行就代表语句已经结束。
代码块
为完成某一特定功能而联系在一起的一组语句构成一个代码块。
有判断、循环、函数、类等各种代码块。
代码块的首行通常以关键字开始,以冒号(:)结束。
缩进
python最具特色的语法就是使用
缩进
来表示代码块
,不需要使用大括号。python一般用
四个空格
就是tab
来缩进.在pycharm中tab自动回转成4个空格
正确的缩进方式:
所有的普通语句,顶左开始编写,不需要缩进
所有的代码块,首行不用缩进,从冒号借宿开始下一行,都要缩进
直到该语句块结束,就退回缩进,表示当前块已结束
语句块可以嵌套,所以缩进也可以嵌套
相关栗子
pass语句
pass语句
- pass语句是
占位语句
,它什么都不做,只是为了保证语法的正确性而写
。
以下场景中,可以使用pass语句
当你不知道后面的代码怎么写的时候
当你不需要写代码细节的时候
当语法必须,又没有实际内容可写的时候
其他的一些你觉得需要得场景
02.算式运算符
python运算符
算数运算符
注意:
/ 计算结果是
浮点数
,即使两个数都是整数,结果也是浮点数// 是
向下取整
如果想同时得到
商
和余数
,可以用divmod()
这个方法。该方法的返回值是tuple(x//y, x%y)
比较运算符
注意:
int 不能 直接与 str 比较
python3 中 不支持 <> 号,如:
>>> 2 <> 3
== 与 != 符号 不能分开 写成 = =
str 与 str 之间比较的是 ASCII,并且 逐个比较
ascll编码对照表:https://blog.csdn.net/hhy321/article/details/120610891
赋值运算符
注意:
赋值:是将等号右边赋值给等号左边
python 不支持 a++、a– 语法
+= 等符号
不能分开
写成 + =
逻辑运算符
连续比较
- 连续比较、如:a>b>c 可拆解为 a>b and b>c
成员运算符
- in 与 not in 是 Python 独有的运算符(全部都是小写字母),用于判断对象是否某个集合的元素之一,非常好用,并且运行速度很快。
-返回的结果是布尔值类型的 True 或者 False 。
身份运算符
- 身份运算符也是 Python 的特色语法(全部都是小写字母)
注意:is 与 == 的区别
- is 用于判断两个变量的
引用是否为同一个内存地址
(可使用 id() 查看) - == 用于判断两个变量的
值是否相等
三目运算符
python中的三目运算符表示方法:
看招:
a = 1,b = 2
实现,当 a+b>3 执行 a+b,否则执行 b-a
运算符优先级
下表列出了从
最高到最低优先级
的所有运算符。优先级高的运算符优先计算或处理,
同级别
的按从左往右
的顺序计算(赋值运算符
除外,它是按从右往左
的顺序)