学习内容
1、 变量、运算符和数据类型 2、 条件语句变量、运算符和数据类型
1. 注释
Python中,#
表示整行注释,‘‘‘ ’’’
或“““ ”””
表示多行注释
2. 运算符
算术运算符:
操作符 | 名称 | 示例 |
---|---|---|
+ | 加 | 1 + 1 |
- | 减 | 2 - 1 |
* | 乘 | 3 * 4 |
/ | 除 | 3 / 4 |
// | 整除(地板除) | 3 // 4 |
% | 取余 | 3 % 4 |
** | 幂 | 2 ** 3 |
比较运算符:
操作符 | 名称 | 示例 |
---|---|---|
> | 大于 | 2 > 1 |
>= | 大于等于 | 2 >= 4 |
< | 小于 | 1 < 2 |
<= | 小于等于 | 5 <= 2 |
== | 等于 | 3 == 4 |
!= | 不等于 | 3 != 5 |
逻辑运算符:
操作符 | 名称 | 示例 |
---|---|---|
and | 与 | (3 > 2) and (3 < 5) |
or | 或 | (1 > 3) or (9 < 2) |
not | 非 | not (2 > 1) |
位运算符:
- 原码、反码和补码
二进制有三种表示形式:原码、反码和补码,计算机内部使用补码来表示。
原码:就是其二进制表示(注意,有一位符号位)。
00 00 00 11 -> 3
10 00 00 11 -> -3
反码:正数的反码就是原码,负数的反码是符号位不变,其余位取反(对应正数按位取反)。
00 00 00 11 -> 3
11 11 11 00 -> -3
补码:正数的补码就是原码,负数的补码是反码+1。
00 00 00 11 -> 3
11 11 11 01 -> -3
符号位:最高位为符号位,0表示正数,1表示负数。在位运算中符号位也参与运算。
操作符 | 名称 | 示例 |
---|---|---|
~ | 按位取反 | ~4 |
& | 按位与 | 4 & 5 |
| | 按位或 | 4 | 5 |
^ | 按位异或 | 4 ^ 5 |
<< | 左移 | 4 << 2 |
>> | 右移 | 4 >> 2 |
~ 1 = 0
~ 0 = 1
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
num << i
将num
的二进制表示向左移动i
位所得的值。
00 00 10 11 -> 11
11 << 3
---
01 01 10 00 -> 88
num >> i
将num
的二进制表示向右移动i
位所得的值。
00 00 10 11 -> 11
11 >> 2
---
00 00 00 10 -> 2
三元运算符:
示例:
x, y = 4, 5
if x < y:
small = x
else:
small = y
print(small) # 4
使用三元操作符的条件表达式,可以使用一条语句完成上述操作:
x, y = 4, 5
small = x if x < y else y
print(small) # 4
其他运算符:
操作符 | 名称 | 示例 |
---|---|---|
in | 存在 | 'A' in ['A', 'B', 'C'] |
not in | 不存在 | 'h' not in ['A', 'B', 'C'] |
is | 是 | "hello" is "hello" |
not is | 不是 | "hello" is not "hello" |
3.变量和赋值
- 在使用变量之前,需要对其先使用
=
赋值。 - 变量名可以包括字母、数字、下划线,但变量名不能以数字开头。
- Python 变量名区分大小写,f != F
4. 数据类型与转换
类型 | 名称 | 示例 |
---|---|---|
int | 整型 <class 'int'> | -876, 10 |
float | 浮点型<class 'float'> | 3.149, 11.11 |
bool | 布尔型<class 'bool'> | True, False |
-
浮点型数据
0.000027
也可用科学计数法表示为2.7e-5
-
布尔 (boolean) 型变量只能取两个值
True
和False
。当把布尔型变量用在数字运算中,用1
和0
代表True
和False
-
查看数据类型使用
type()
,如果要判断两个类型是否相同使用isinstance()
a = 0.00000023
b = 2.3e-7
print(a) # 2.3e-07
print(b) # 2.3e-07
print(True + True) # 2
print(True + False) # 1
print(True * False) # 0
a = 101
print(a, type(a))
# 101 <class 'int'>
print(isinstance(1, int)) # True
print(isinstance(5.2, float)) # True
print(isinstance(True, bool)) # True
print(isinstance('5.2', str)) # True
除了直接给变量赋值 True
和 False
,还可以用 bool(X)
来创建变量,其中 X
可以是
- 基本类型:整型(int)、浮点型(float)、布尔型(bool)
- 容器类型:字符串(str)、元组(tuple)、列表(list)、字典(dict)和集合(set)
bool
作用在基本类型变量:X
只要不是整型 0
、浮点型 0.0
,bool(X)
就是 True
,否则就是 False
。
bool
作用在容器类型变量:X
只要不是空的变量,bool(X)
就是 True
,否则就是 False
。
print(type(0), bool(0), bool(1))
# <class 'int'> False True
print(type(10.31), bool(0.00), bool(10.31))
# <class 'float'> False True
print(type(True), bool(False), bool(True))
# <class 'bool'> False True
print(type(''), bool(''), bool('python'))
# <class 'str'> False True
print(type(()), bool(()), bool((10,)))
# <class 'tuple'> False True
print(type([]), bool([]), bool([1, 2]))
# <class 'list'> False True
print(type({}), bool({}), bool({'a': 1, 'b': 2}))
# <class 'dict'> False True
print(type(set()), bool(set()), bool({1, 2}))
# <class 'set'> False True
类型转换:
- 转换为整型
int(x, base=10)
- 转换为字符串
str(object='')
- 转换为浮点型
float(x)
print(int('520')) # 520
print(int(520.52)) # 520
print(float('520.52')) # 520.52
print(float(520)) # 520.0
print(str(10 + 10)) # 20
print(str(10.1 + 5.2)) # 15.3
5.print()函数
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- 将对象以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按
str()
方式进行转换为字符串输出; - 关键字参数
sep
是实现分隔符,比如多个参数输出时想要输出中间的分隔字符; - 关键字参数
end
是输出结束时的字符,默认是换行符\n
; - 关键字参数
file
是定义流输出的文件,可以是标准的系统输出sys.stdout
,也可以重定义为别的文件; - 关键字参数
flush
是立即把内容输出到流文件,不作缓存。
没有参数时,每次输出后都会换行。
alist = ['a', 'b', 'c', 'd']
print("This is printed without 'end'and 'sep'.")
for item in alist:
print(item)
# This is printed without 'end'and 'sep'.
# a
# b
# c
# d
每次输出结束都用end设置的参数&结尾,并没有默认换行。
alist = ['a', 'b', 'c', 'd']
print("This is printed with 'end='&''.")
for item in alist:
print(item, end='&')
print('hello world')
# This is printed with 'end='&''.
# a&b&c&d&hello world
item
值与'qaq'
两个值之间用sep
设置的参数&
分割。由于end
参数没有设置,因此默认是输出解释后换行,即end
参数的默认值为\n
。
alist = ['a', 'b', 'c', 'd']
print("This is printed with 'sep='&''.")
for item in alist:
print(item, 'qaq', sep='&')
# This is printed with 'sep='&''.
# a&qaq
# b&qaq
# c&qaq
# d&qaq
条件语句
1. if 语句
if expression:
expr_true_suite
- if 语句的
expr_true_suite
代码块只有当条件表达式expression
结果为真时才执行,否则将继续执行紧跟在该代码块后面的语句。 - 单个 if 语句中的
expression
条件表达式可以通过布尔操作符and
,or
和not
实现多重条件判断。
2. if - else 语句
if expression:
expr_true_suite
else:
expr_false_suite
- Python 提供与 if 搭配使用的 else,如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码。
- if语句支持嵌套,即在一个if语句中嵌入另一个if语句,从而构成不同层次的选择结构。
3. if - elif - else 语句
if expression1:
expr1_true_suite
elif expression2:
expr2_true_suite
.
.
elif expressionN:
exprN_true_suite
else:
expr_false_suite
4. assert 关键词
assert这个关键词我们称之为“断言”,当这个关键词后边的条件为 False 时,程序自动崩溃并抛出AssertionError的异常。
my_list = ['lsgogroup']
my_list.pop(0)
assert len(my_list) > 0
# AssertionError
pop()
为移除表中的一个元素,并返回该元素的值
在进行单元测试时,可以用来在程序中置入检查点,只有条件为 True 才能让程序正常工作。
assert 3 > 7
# AssertionError
参考课程链接:[阿里云天池Python训练营](https://tianchi.aliyun.com/specials/promotion/aicamppython)