廖雪峰老师python教程https://www.liaoxuefeng.com/wiki/1016959663602400
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
Python是用来编写应用程序的高级编程语言。Python有非常完善的基础代码库。用Python开发,许多功能不必从零编写,直接使用现成的即可。总之一句话,人生苦短,我选python!
Python的交互模式和直接运行.py
文件有什么区别呢?
直接输入python
进入交互模式,相当于启动了Python解释器,但是等待你一行一行地输入源代码,每输入一行就执行一行。
直接运行.py
文件相当于启动了Python解释器,然后一次性把.py
文件的源代码给执行了,你是没有机会以交互的方式输入源代码的。
Python语法规范
以#开头的语句是注释
以:结束时,缩进的语句是为代码块
应该始终坚持使用4个空格的缩进。
变量的概念和代数方程系统是变量是一致的,只不过,变量除了是数字以外,还可以是任意的数据类型。
变量名:在程序中用变量名表示一个变量。要求,大小写英文数字和_
的组合,不能以数字开头
a
、a12
、_a12
都是合法的
12a
、12_ss
是不合法的
我们用等号=将任意数据类型赋值给变量。python非常友好的一点是,不需要声明变量类型。同时一个变量可以反复赋值,而且可以是不同数据类型的变量。
a=123 #a是整数
a=“wenjunjie” #a变成了字符串
这种变量类型不固定的语言叫做动态语言。
python语言有一个很有意思的机制,和小甲鱼说的,python中的变量更像是一个标签,然后去贴在数据上。
事实上,我们写赋值语句,诸如:a=‘ABC’ 的时候,python编译器干了一下两件事情。
1.在内存中创建了一个‘ABC‘的字符串。
2.在内存中创建了一个名为a的变量,并把它指向’ABC’。
当一个变量a赋值给另外一个变量b时,实际上是把变量b指向变量a所指向的数据。
说到变量不得不补充常量。
常量:就是不能变的变量
以下把python所有的运算符汇总了一下
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | 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 |
== | 等于 - 比较对象是否相等 | (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。 |
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符 | 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 |
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为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 |
运算符 | 逻辑表达式 | 描述 | 实例 |
---|---|---|---|
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 |
身份运算符用于比较两个对象的存储单元
运算符 | 描述 | 实例 |
---|---|---|
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能处理的数据类型包括整数,浮点数,字符串,布尔值,空值,变量,常量。
这里的整数就是数学意义上的整数,python语言很强大,可以处理任意大小的整数(不像其他语言有限制)。例如:1,0,100,-200等。当然有时候使用十六进制比较方便,我们只需用0x表示十六进制前缀就好。
浮点数就是小数。(所谓浮点数是因为在科学计数法中,一个浮点数的小数点的位置是可变的)。
需要注意的是,由于计算机内部存储机制的问题,整数运算时精确的,但是浮点数运算可能会有四舍五入的误差。
python的浮点数虽然也是没有大小限制的,但超出一定的范围就会直接表示为inf(无限大)。
字符串是以单引号'
或双引号"
括起来的任意文本。例如’wenjunjie’,“hello world”,“123”。
我们使用转义字符\
对字符串内部的单引号双引号进行表示,例如
“I\'m\"ok\"! ”
转义字符可以转很多字符。比较常用的有\n
表示换行,\t
表示制表 ,\\
代表字符对自身的转义
python有一个特殊的换行语法, 用'''...'''
的格式表示多行内容。
print('''line1
... line2
... line3''')
line1
line2
line3
注意了,其中…是提示符不是语法内容,…只会在交互式命令行中出现。
布尔值只有True,False两种值。可以用 and or not运算
以下为实验代码(在交互式窗口)
>>> True
True
>>> False
False
>>> True and False
False
>>> True or False
True
>>> not True
False
>>> 3>5
False
>>> 3>5 or 5>3
True
空值是python中的一个特殊值,表示为None。