本文代码地址github.com
变量与类型
在计算机程序中,数据存储在内存中,在Python中通常不会直接操作内存地址来读写数据,而是变量来读写数据,即变量是操作数据的载体. 不同的变量可以储存不同的数据类型,在Python中以下为几种常用的基本类型整型(int):整数类型,除了常见的十进制(如30)外,还支持二进制(如0b11110),八进制(如0o36),十六进制(如0x1E)的数据.
浮点型(float):就是我们通常意义下的小数类型,还可以用科学记数法表示(如123000可用1.23e5表示).
布尔型(bool):布尔类型只有True和False两种值,用于表示逻辑真和假.
字符串(str):使用单引号或双引号括起来的文本(如'Welcome to Python!'或"Welcome to Python!").
变量命名
对于变量我们都需要给它取一个名字,在Python中变量的命名需要遵循以下规则变量名可由字母,数字,下划线构成,但不能以数字开头. 如user_id, user1, user2等
大小写敏感,uid与UID是不同的变量.
不能使用Python语言的关键字作为变量名
Python关键字如下
注释单行注释,以#开头表示单行注释,如
# 这是注释,注释的目的是对程序进行一些必要的说明,增加代码可读性多行注释,使用三引号表示多行注释,如
"""
这是
一个
多行
注释
"""
还可以使用单引号
'''
这也是
一个
多行
注释
'''
# a是一个整数
a = 30
# b是一个浮点数
b = 13.57
# c是布尔类型
c = True
# d是字符串类型
d = "Welcome to Python world!"
# 输出变量类型,在Python中可以使用type函数获取变量类型
print(type(a))
print(type(b))
print(type(c))
print(type(d))
类型转换
不同类型的变量可以相互转换,Python内置了如下函数进行类型转换int():将输入变量转换为整型
float():将输入变量转换为浮点型
str():将输入变量转换为字符串型
a = 30
b = 13.57
c = "99"
d = "没有比Python更简单的编程语言"
# 将整数转换为字符串
print("int -> str: '{}'".format(str(a)))
# 将浮点数转换为字符串
print("float -> str: '{}'".format(str(b)))
# 将字符串转换为整数
print("str -> int: {}".format(int(c)))
# 将字符串转换为浮点数
print("str -> float: {}".format(float(c)))
# 将字符串转换为布尔类型
print("str -> bool: {}".format(bool(c)))
int -> str: '30'
float -> str: '13.57'
str -> int: 99
str -> float: 99.0
str -> bool: True
假值
任何对象都可以进行逻辑值的检测,以便在if或while作为条件或是作为下文所述布尔运算的操作数来使用,以下列出了会被视为假值的内置对象被定义为假值的常量:None和False
任何数值类型的零:0, 0.0, Decimal(0), Fraction(0, 1)
空字符串或空序列:'', (), [], {}, set(), range(0)
布尔运算符
布尔运算符用于进行逻辑值的计算,在if和while等控制语句中会频繁用到
a = 1
b = 1
c = "我是一个非空字符串"
# 只要有一个条件为真则判断为真,这里a>3为False,但是b>0为True,所以最终结果为True
if a > 3 or b > 0:
print("a大于3或者b大于0")
# 两个条件都为真的时候才判断为真这里a==b为True,且c是一个非空字符串,两项都为True,所以最终结果为True
if a == b and c:
print("a等于b且c是一个非空字符串")
# 逻辑取反,这里a>1为False,对它取反则为True
if not a > 1:
print("a不大于1")
a大于3或者b大于0
a等于b且c是一个非空字符串
a不大于1
比较运算符
比较运算符用于判断值的大小或相等与否,以下为Python支持的比较运算符
a = 1
b = 3
c = 3
# a小于b,结果为True
if a < b:
print("a小于b")
# a小于等于b,结果为True
if a <= b:
print("a小于或等于b")
# c大于a,结果为True
if c > a:
print("c大于a")
# c大于等于a,结果为True
if c >= a:
print("c大于或等于a")
# b等于c,结果为True
if b == c:
print("b等于c")
# a不等于b,结果为True
if a != b:
print("a不等于b")
a小于b
a小于或等于b
c大于a
c大于或等于a
b等于c
a不等于b
算术运算符
算数运算符用于数值计算,以下为常见的算术运算符
a = 2
b = 5
# 加法
print("{} + {} = {}".format(a, b, a+b))
# 减法
print("{} - {} = {}".format(a, b, a-b))
# 乘法
print("{} * {} = {}".format(a, b, a*b))
# 除法
print("{} / {} = {}".format(b, a, b/a))
# 计算商
print("{} // {} = {}".format(b, a, b//a))
# 计算余数
print("{} % {} = {}".format(b, a, b%a))
# 指数运算
print("{} ** {} = {}".format(a, b, a**b))
2 + 5 = 7
2 - 5 = -3
2 * 5 = 10
5 / 2 = 2.5
5 // 2 = 2
5 % 2 = 1
2 ** 5 = 32
按位运算符
按位运算只对整数有意义,以下为Python位运算符
# a和b为两个二进制整数
a = 0b10110
b = 0b11011
# 输出查看a和b的十进制表示
print("a = {}".format(a))
print("b = {}".format(b))
# a和b的所有位进行或操作,括号中为十进制表示结果
print("{:#b} | {:#b} = {:#b} ({})".format(a, b, a|b, a|b))
# a和b的所有位进行异或操作,括号中为十进制表示结果
print("{:#b} ^ {:#b} = {:#b} ({})".format(a, b, a^b, a^b))
# a和b的所有位进行按位与操作,括号中为十进制表示结果
print("{:#b} & {:#b} = {:#b} ({})".format(a, b, a&b, a&b))
# 对a进行左移操作,左移n位相当于乘以2的n次方,括号中为十进制表示结果
print("{:#b} << {} = {:#b} ({})".format(a, 2, a<<2, a<<2))
# 对b进行右移操作,右移n位相当于除以2的n次方,括号中为十进制表示结果
print("{:#b} >> {} = {:#b} ({})".format(b, 2, b>>2, b>>2))
# 将a的所有位翻转,1变0,0变1,括号中为十进制表示结果
print("~{:#b} = {:#b} ({})".format(a, ~a, ~a))
a = 22
b = 27
0b10110 | 0b11011 = 0b11111 (31)
0b10110 ^ 0b11011 = 0b1101 (13)
0b10110 & 0b11011 = 0b10010 (18)
0b10110 << 2 = 0b1011000 (88)
0b11011 >> 2 = 0b110 (6)
~0b10110 = -0b10111 (-23)
赋值运算符
赋值运算符的作用是将右边的值赋给左边的变量,以下为常用的赋值运算符
# 直接将5赋给变量a
a = 5
# 等价于a = a + 2
a += 2
# 等价于a = a - 2
a -= 2
# 等价于a = a * 2
a *= 2
# 等价于a = a / 2
a /= 2
# 等价于a = a // 2
a //= 2
# 等价于a = a % 2
a %= 2
# 等价于a = a ** 2
a **= 2
a = 5
# 等价于a = a << 2
a <<= 2
# 等价于a = a >> 2
a >>= 2
# 等价于a = a & 2
a &= 2
# 等价于a = a | 2
a |= 2
# 等价于a = a ^ a
a ^= 2