Python基础(二)
基本概念(这些概念极其重要,如果有任何一个不清楚的,请务必弄懂)
标识符:
(标识符严格区分大小写,即Apple和apple不是同一个东西)
标识在汉语中和标志是一个意思,顾名思义,就是用于识别一个事物的,所以简单理解标识符就相当于名字,它的主要作用就是作为变量、函数、类、模块以及其他对象(现阶段不用太纠结类、模块、对象是什么含义)的名字
现实世界起名字是有讲究的,一般两个字到四个汉字,由姓和名组成,一般姓跟随父亲,也有跟随母亲的或都跟随的(2个字),程序世界中也一样,它由数字、字母、下划线三部分组成,三部分只需要出现任一部分即满足要求,并可以任意混搭,但是切记,不能以数字开头!
如 1a 这样的标识符 是非法的 ,a1 就是合法的。
扩展:建议标识符的命名选择有意义的英文单词,不仅锻炼英语能力,也增加代码的可读性,变量名命名一般选择小驼峰法来命名,除第一个单词外首字母大写,如myClassName
关键字(保留字):(无需死记硬背,知道有这么一回事即可)
这些单词是不能被作为标识符的来使用的。
变量名:
在上文中提到了,标识符可以作为变量的名称,这个所谓变量的名称,就简称变量名,下面主要是理解,什么是变量。
变量:
顾名思义,变化的量,如果把计算机“盒子化”,计算机是一个超级无敌大盒子,里面有许许多多略小但是仍然很大的盒子——程序,程序这个大盒子里又有许许多多的更小一点的盒子——变量,变量里面装着比它又又小一点的盒子——数据,盒子里的东西可以取出来,也可以再放进去,甚至可以替换,这就体现了“变”
在之前的内容,我们了解到,程序的基本模型IPO,输入处理输出,那么,输入什么呢?处理的又是什么呢?输出什么呢?没错,实际上都是数据,而变量就是数据的一个载体。
你可以把变量想像为快递盒,数据就是你快递盒里装的快递,你到淘宝下单,店家会把你的快递准备好,快递会把你的快递打包进盒子,而你收到后则要拆开快递,取出里面的东西,这也相当于一个IPO的过程哦~
扩展:不难想到,变量对应应该还有常量,在其它语言中常使用const关键字来定义常量,Python中没有,但是常量这个概念在Python中也是存在的。
不知道有没有同学已经提前解除了“代数”这个概念,比如设长度为x,其实这个思想,就是变量的思想。
赋值:
写在最前面,赋值是必须的,在Python中每个变量必须赋值
前面讲了变量是一个装数据的盒子,数据不会突然冒出来,再回到那个快递上,店家不备货交给快递,快递也不会把货物凭空变出来,光有快递盒也是没用的,你在网上买的东西,结果商家给你寄了个空盒子,你乐意吗?把数据装进变量这个盒子的过程,就叫做赋值,赋值通过赋值运算符来实现,也就是“=”这个符号,例如
myJob = “teacher” ,就在myJob这个变量中放入了teacher这个字符串类型的数据
扩展:
Python允许你同时为多个变量赋值,这在其它大部分语言中是被禁止的,
例如:
a = b = c = 1
这样三个变量就都是1了,如果希望他们各不相同,可以如下方式定义:
a, b, c = 1, 2, 3
数据类型:
前面以快递为例子,这里依旧以快递为例,你所购买的货物是有种类的,像杯子、电脑,就是完全不同的东西,对待不同的商品,快递盒也会略有不同,当然这是题外话,计算机的中的数据同样也有很多种类。
Python3 中有六个标准的数据类型:(目前只需要掌握前两个,不过这些英文单词都必须掌握!)
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
数字非常好理解,在Python中又细分为 int(整数)、float(浮点数)、bool(布尔数)、complex(复数),复数目前不要求掌握,涉及一定的高中知识。整数不难理解,浮点数相当于数学中的小数,布尔数有且仅有两个True和False(注意首字母是大写的,并且他们都是关键字)
字符串(简称串,String)是由数字、字母、下划线等组成的一串字符,区别于标识符,标识符只能由这三个组成,字符串限制就没那么多了,空格和一些特殊符号都是可以的,用一对单引号或者双引号包起来。如”Hello Wordl”就是一个字符串。
表达式:
数学还不错的同学应该很容易理解这个概念,常说列式计算,这个列式的式,就相当于表达式,只不过程序里的表达式多了一些“变量”,也就是那些你自己定义的英文单词,其实数学中后面也经常会去把一些未知数设成各种字母,然后参与运算,和表达式有异曲同工之妙。专业的语言去描述,变量和运算符组成的式子就叫做表达式。如“a*b+c/3”,组合的方式千奇百怪,但是你需要能够认出,这是表达式。
语句:
在Python中,你可以简单的理解,一条语句就相当于一行代码,因为Python中并不强制要求加上分号,值得注意的是,分号依旧是一条语句的结尾,如果在一行中出现了用分号隔开的两段内容,这样称为两条语句。
如下:
a=10;b=9
这样就是两条最简单的语句
运算符:
在表达式的概念中,出现了运算符这个概念,其实运算符大家接触的并不少。数学中最最常见的加减乘除都是运算符,而且运算法则完全相同,Python中的运算符非常的多,无需死记硬背,硬背运算符属于何种类型,只要看到对应运算符能够大致了解其效果即可,用多了自然记住了。
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
Python算术运算符(全部掌握)
以下假设变量a为10,变量b为21:
运算符 | 描述 | 实例 |
+ | 加 - 两个对象相加 | a + b 输出结果 31 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -11 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 210 |
/ | 除 - x 除以 y | b / a 输出结果 2.1 |
% | 取模 - 返回除法的余数 | b % a 输出结果 1 |
** | 幂 - 返回x的y次幂 | a**b 为10的21次方 |
// | 取整除 - 向下取接近除数的整数 | >>> 9//2 4 >>> -9//2 -5 |
Python比较运算符(要求全部掌握)
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 True。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 True。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 True。 |
Python赋值运算符(要求全部掌握)
以下假设变量a为10,变量b为20:
运算符 | 描述 | 实例 |
= | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
+= | 加法赋值运算符 | c += a 等效于 c = c + a |
-= | 减法赋值运算符 | c -= a 等效于 c = c - a |
*= | 乘法赋值运算符 | c *= a 等效于 c = c * a |
/= | 除法赋值运算符 | c /= a 等效于 c = c / a |
%= | 取模赋值运算符 | c %= a 等效于 c = c % a |
**= | 幂赋值运算符 | c **= a 等效于 c = c ** a |
//= | 取整除赋值运算符 | c //= a 等效于 c = c // a |
Python位运算符(只要求掌握按位与、按位或、按位取反)
运算符 | 描述 | 实例 |
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
技巧:关于 “与”的运算,可以看作是乘法,关于 “或”的运算,可以看作是加法,但是大于1的数字都认为是1
Python逻辑运算符(全部掌握)
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:
运算符 | 逻辑表达式 | 描述 | 实例 |
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 | (a and b) 返回 20。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 | (a or b) 返回 10。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 | not(a and b) 返回 False |
Python成员运算符(全部掌握)
成员运算符包括in和 not in,用于判断指定序列中是否存在某个值。
例如,1在1-5这个序列中,即 1 in 1-5
6不在1-5这个序列中,即1 not in 1-5
(上面的例子并非标准语言格式,仅便于理解使用)
运算符 | 描述 | 实例 |
in | 如果在指定的序列中找到值返回 True,否则返回 False。 | x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
Python身份运算符(严重超纲,学有余力可以尝试了解)
知识储备(有一定难度):
在计算机中,对象都是存储在内存单元的,就好比衣服需要存储在衣柜一样,
运算符 | 描述 | 实例 |
is | is 是判断两个标识符是不是引用自一个对象 | x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False |
is not | is not 是判断两个标识符是不是引用自不同对象 | x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False。 |
Python逻辑运算符(全部掌握)
其余运算符暂时不会用到,所以没有列举,有兴趣可以提前在网上查阅资料进行学习。
扩展延伸
原则上运算符的优先级无需死记硬背,搞不清楚的地方多运用()来提升优先级,不过很多应试场合会考,如计算机二级,就很头痛… 能背就背吧,背不下来也无所谓,记几个特殊的就好,如非、与、或,他们的优先级并不是同级的,而是非高于与高于或,这个容易弄错,考试也很喜欢考…