编程基础
计算机基础
- 程序(program识别并执行的指令
- 计算机是执行程序的机器
- 现代计算机
- 艾伦·麦席森·图灵奠定了现在计算机的逻辑工作方式的基础
- 冯·诺依曼提出计算机应该有五大部件组成:输入/输出设备、运算器、控制器、输出设备。这是现代计算机基本框架。
语言基础
程序
- 程序
- 算法+数据结构=程序
- 数据是程序的核心
- 数据结构是计算机中数据的类型和组织方式
- 算法是数据的处理方式
- 难点
- 找不到数据的规律
- 找不到合适的处理方法
- 无法将规律转换为数据结构,将方法转换为算法
- 无法将思路转换成程序结构
- 没有排错(debug)能力
Python解释器
- 官方的Cpython C语言写的解释器
- Ipyhton 升级的、有交互的Cpython
- Pypy pyhton编写的解释器,拥有JIT(just in time)技术,动态编写python代码
- jython 将python代码转换成Java字节码,运行在java虚拟机上
- Ironpython 运行在.net平台的解释器,将pyhton代码转换为.net字节码
Python基础语法
- 注释 — #标注的文本
- 数字
- 整数:不区分long和int,只有long;
- 进制数 0xz(十六进制) 0b10(二进制) 0o10(八进制)
- 布尔值(Bool),共两个值true和false
- 浮点数:由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,例如:1.34 0.12 -3.1 1.46e9=1.36*10^9
- 复数:在python’中表示为a+bj,就是特定的表示,a和b是数字。
- 字符串
- 引用的字符序列
- 单双三引号应用的字符序列可以跨行可以在其中使用任意引号
- 在字符串前面家上r或R则表示字符串不做特殊处理
- 转义序列
- \n 换行
- \t tab键
- \ 转义斜杠
- ‘(“) 转义引号
- \r 转义R,原先使用R则表示使用真实字符
- 缩进 Python采用缩进来表示层次关系,默认为缩进四个空格
- 续行 在行末是用符号\ 如果使用括号则认为括号内的才是一个整体
- 标识符
1. 只能表示一个值
2. 只能使用字母、下划线和数字
3. 只能用字母和下划线开头
4. 不能是python关键字
5. 区分大小写
6. 不能随便使用下划线开头的表示符,不能使用有歧义的单词,不允许使用中文
- 常量 赋值后不能改变值的标识符,python无法定义常量
- 字面常量 一个单独的量,如:12 “abc”
- 变量 赋值后只可以改变的表示符
运算符
+ 加
- 减
* 乘
/ 自然除,结果是浮点数
// 整除结果是整数
** 2**3 表示2的三次方
% 取模,返回除法的余数
运算符 |
描述 |
实例 |
& |
按位与运算符:参与运算的两个值,如果两个相应位都为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 |
运算符 |
描述 |
实例 |
== |
等于 – 比较对象是否相等 |
(a == b) 返回 False。 |
!= |
不等于 – 比较两个对象是否不相等 |
(a != b) 返回 true. |
<> |
不等于 – 比较两个对象是否不相等 |
(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。 |
运算符 |
描述 |
实例 |
= |
简单的赋值运算符 |
= 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 |
//= |
取整除赋值运算符 |
//= a 等效于 c = c // a |
运算符 |
逻辑表达式 |
描述 |
实例 |
and |
x and y |
布尔”与” – 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 (a and b) 返回 20。 |
|
or |
x or y |
布尔”或” – 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。 |
|
not |
not x |
布尔”非” – 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False |
|
```
简单来说
And:与运算。只有同为真时才为真,近似于乘法。
Or:或运算。只有同为假时才为假,近似于加法。
Xor:异或运算。相同为假,不同为真。
```
运算符 |
描述 |
实例 |
in |
如果在指定的序列中找到值返回 True,否则返回 False。 |
x 在 y 序列中 , 如果 x 在 y 序列中返回 True。 |
not in |
如果在指定的序列中没有找到值返回 True,否则返回 False。 |
x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True。 |
运算符 |
描述 |
实例 |
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。 |
运算符 |
描述 |
** |
指数 (最高优先级) |
~ + – |
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* / % // |
乘,除,取模和取整除 |
+ – |
加法减法 |
>> << |
右移,左移运算符 |
& |
位 ‘AND’ |
^ | |
位运算符 |
<= < > >= |
比较运算符 |
<> == != |
等于运算符 |
= %= /= //= -= += *= **= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not or and |
逻辑运算符 |
注意:算数运算符–>位运算符–>身份运算符–>成员运算符–>逻辑运算符
- 表达式 是数字、符号、括号、变量等的组合
- 程序控制
- 顺序 按照顺序一步一步执行
- 分支 按条件判断,当满足什么条件式做相对应的操作
- 循环 条件满足就反复执行,不满足就结束执行
- 单分支结构
- if if condition(条件): 代码块(当满足上述条件执行什么操作) 例如:
if n>1:
print(n)
对象/常量 |
值(value) |
1 |
2 |
3 |
3 |
“” |
false |
“string” |
true |
0 |
false |
>=1 |
ture |
<=-1 |
true |
()空元组 |
false |
[]空列表 |
false |
{}空字典 |
false |
none |
false |
- if语句
if...else...
```
if condition1:
代码块(满足上面的条件要执行的操作)代码块)
else:
代码块(不满足else之前的条件要执行的操作)
```
score = 80
if score<0:
print('wrong')
else:
if score==0:
print('egg')
elif score <= 100:
print('right')
else:
print('too big')
- 循环语句while和for
while condition
block
当条件满足即condition为True,进入循环体执行block
例子:
flag=10
while flag:
print(flag)
flag-=1
for element in iteratable:
block
当可迭代(或者称为循环)对象中有元素可以迭代进入循环体,执行block
for i in range(10):
print(i)
- 循环continue语句:中断当前循环的当次执行,继续下一次循环
for i in range(10)
if i
continue
print(i)
for i in range(10)
print(i)
if i
break
- 循环else子句:当for或者while循环正常循环结束就执行else子句,如果是break打断循环则不执行
while condition:
block
else:
block
或者
for element in iteratable:
block
else:
block
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87257