编程语言基础¶
0. 概述¶
编程语言本质上都是相通的,这篇文章就是写各种语言中相同逻辑的实现。
大致有如下内容:
- 语言基础:注释,运算符,条件控制,循环
- 数据类型:数字,字符串,列表,元组,字典,集合
- 高级功能:函数,结构体,类,错误和异常,包,引用
- 标准库:输入,输出,文件,其他
1. 语言基础¶
1.1. 注释¶
# 这里是单行注释
'''
多行注释是使用字符串的形式定义的
可以使用3个单引号或者3个双引号
'''
"""
还可以使用3个双引号做多行注释
"""
// 这里是单行注释
/*
* 这里是多行注释,本行前面的*可以不用写,为了对齐美观可以写上。
*/
// 这里是单行注释
/*
* 这里是多行注释,本行前面的*可以不用写,为了对齐美观可以写上。
*/
// 这里是单行注释
/*
* 这里是多行注释,本行前面的*可以不用写,为了对齐美观可以写上。
*/
// 这里是单行注释
/*
* 这里是多行注释,本行前面的*可以不用写,为了对齐美观可以写上。
*/
1.2. 运算符¶
设 a=10, b=21
:
基本运算符¶
运算符 | 说明 | 示例 |
---|---|---|
+ |
加 | a+b 为 31 |
- |
减 | a-b 为 -11 |
* |
乘 | a*b 为 210 |
/ |
除 | b/a 为 2.1 |
% |
取模:返回余数 | b%a 为 1 |
** |
幂: | a**b 为 10 的 21 次方 |
// |
取整:向下取整 | 9//2 为 4 -9//2 为 5 |
++ | 自增:相当于 x=x+1 | |
-- | 自减:相当于 x=x-1 |
逻辑运算符¶
| 运算符 | 说明 | 示例 |
| --------------------- | -------- | --------------- | ------ | --- |
| ==
| 等于 | (a==b) 为 Flase |
| !=
| 不等于 | (a!=b) 为 True |
| >
| 大于 | (a>b) 为 Flase |
| <
| 小于 | (a>= | 大于等于 | (a>=b) 为 Flase |
| <=
| 小于等于 | (a<=b) 为 True |
| &&
或 and
| 逻辑与 | |
| | |
或or
| 逻辑或 | |
| !
或 not
【一元】 | 逻辑非 | |
赋值¶
运算符 | 说明 | 示例 |
---|---|---|
= |
赋值 | (a==b) 为 Flase |
+= |
加后赋值 | (a!=b) 为 True |
-= |
减后赋值 | (a>b) 为 Flase |
*= |
乘后赋值 | (a<b) 为 True |
/= |
除后赋值 | (a>=b) 为 Flase |
%= |
取模后赋值 | (a<=b) 为 True |
**= |
幂次后赋值 | |
//= |
取整后赋值 | |
:= |
声明并赋值 |
位运算符¶
a=60, b=13
a = 0011 1100
b = 0000 1101
----------------
a&b = 0000 1100 [12]
a|b = 0011 1101 [61]
a^b = 0011 0001 [49]
~a = 1100 0011 [-61] 首位为符号位
a<<2= 1111 0000 [240]
a>>2= 0000 1111 [15]
| 运算符 | 说明 | 示例 |
| ---------- | ---- | ------------------- | ------------------- |
| &
| 与 | (a&b) 为 0000 1100 |
| |
| 或 | (a|b) 为 0011 1101 |
| ^
| 异或 | (a^b) 为 0011 0001 |
| ~
[一元] | 取反 | (~a) 为 1100 0011 |
| <<
| 左移 | (a<<2) 为 1111 0000 |
| >>
| 右移 | (a>>2) 为 0000 1111 |
其他运算符¶
运算符 | 说明 | 示例 |
---|---|---|
& |
地址运算符 | &a 返回 a 的实际地址 |
* |
指针 | *a 返回 a 的指针 |
in |
在序列中 | x in y,在 True,不在 False |
not in |
不在序列中 | x in not y,在 False,不在 True |
is |
判断对象相同 | x is y,相同 True,不同 False |
is not |
判断对象不同 | x is not y,相同 False,不同 True |
运算符优先级¶
¶
| 运算符 | 说明 |
| -------------------------- | ---------------------------- | -------- |
| **
| 幂 |
| ~ + -
| 取反,正号,负号。一元运算符 |
| * / % //
| 乘,除,求余数和取整除。 |
| + -
| 加,减 |
| >> <<
| 右移,左移 |
| &
| 位与 |
| ^ |
| 异或,或 |
| <= < > >=
| 比较运算符 |
| == !=
| 等于,不等于 |
| = += -= *= /= %= //= **=
| 赋值运算符 |
| is is not
| |
| in not in
| |
| not and or
| 逻辑判断 |
不支持 ++
和 --
自增和自减。
不支持 &&
, ||
,!
逻辑与,逻辑或,逻辑非 的写法 。
不支持 $
和 *
地址运算符和指针。
| 分类 | 运算符 | 说明 |
| ---------- | -------------------------------- | -------------------------------------- | -------- | ------ |
| 单目运算符 | ! * & ++ -- + -
| 非,指针,地址,自增,自减,正号,负号 |
| 乘除余 | * / %
| 乘,除,求余 |
| 加减 | + -
| 加,减 |
| 位移运算符 | >> <<
| 右移,左移 |
| 关系运算符 | <= < > >=
| 小于等于,小于,大于,大于等于 |
| 相等/不等 | == !=
| 等于,不等于 |
| 按位与 | &
| 与 |
| 按位异或 | ^
| 异或 |
| 按位或 | |
| 或 |
| 逻辑与 | &&
| 逻辑与 |
| 逻辑或 | | |
| 逻辑或 |
| 赋值运算符 | = += -= \*= /= %= >>= <<= &= ^= | =
| 从右到左 |
不支持 **
和 //
幂和取整。
不支持and
,or
,not
逻辑与,逻辑或,逻辑非 的写法 。
不支持 ~
取反。
// 这里是单行注释
/*
* 这里是多行注释,本行前面的*可以不用写,为了对齐美观可以写上。
*/
// 这里是单行注释
/*
* 这里是多行注释,本行前面的*可以不用写,为了对齐美观可以写上。
*/
// 这里是单行注释
/*
* 这里是多行注释,本行前面的*可以不用写,为了对齐美观可以写上。
*/
2. 数据类型¶
2.3. 列表¶
访问列表中的元素索引都是从0
开始的。有的语言支持倒序,最后一个元素的索引为-1
。
list = ['red', 'green', 'blue', 'yellow', 'white', 'black']
# 访问一个值
list[0] # red
list[1] # green
list[-1] # black 有的语言支持
list[-2] # white 有的语言支持
# 访问一组值
list[startIndex:endIndex] # 相当于取 [startIndex, endIndex) 包含startIndex,不包含endIndex
list[:endIndex] # 等同于 [0:endIndex]
list[startIndex:] # 等同于 [startIndex:len(list)]
# 步长,step默认值为1
list[start:stop:step] # 取 start, start+step, start+2*step ... 一直到stop为止。不包含stop。
list[::-1] # 相当于将list列表反向排列。['black', 'white', 'yellow', 'blue', 'green', 'red']
最后更新: 2022-07-30 02:00:00