Python小白到老司机,快跟我上车!基础篇
Posted coder-pig
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python小白到老司机,快跟我上车!基础篇相关的知识,希望对你有一定的参考价值。
1、变量
① 什么是变量
程序运行过程中值可以改变的数据,代表这一个存储空间,需要用变量名来找到这个数据。举个形象化的例子:超市储物箱,存东西到箱子里后会给你一个纸条,根据纸条才能取回里面的东西。储物柜的格子可以理解为变量的内存空间,纸条就是变量名,拿和放就是修改变量名对应内存空间里的数据。
② 变量的使用示例
变量「使用前需先定义」,python是一种「动态类型语言」,赋值时可以绑定不同类型的数据值。同时也确定了变量类型。Python中可以通过
type()
函数来获取变量的数据类型,示例如下:
# 变量定义(确定初始值类型)
a = 1
print('%s => %d' % (type(a),a))
# 变量赋值
a = 'Python'
print('%s => %s' % (type(a),a))
# 运行结果如下:
# <class 'int'> => 1
# <class 'str'> => Python
③ 多个变量赋值
Python支持多个变量赋值,以下两种赋值方法都是正确的:
a = b = c = 1
a, b, c = 1,2,"Python"
④ del关键字
我们可以使用**del
关键字删除对象的引用,但删除后再调用变量是会报错**的,比如调用del a,然后再去把a打印出来,会报这样的错误:NameError: name ‘a’ is not defined。
2、常量
Python中没有专门定义常量的方式,通常 使用大写变量名表示,不过仅仅是起一种「提示效果」,本质上还是变量!
3、运算符
① 算术运算符(7种) & 赋值运算符(8种)
Python中包含的算术运算符有如下七种:
+
(加) -
(减)*
(乘) /
(除) %
(求余) *
(幂,次方) //
(地板除法,舍弃小数)
使用代码示例如下:
print("3 + 7 = %d" % (3 + 7))
print("3 - 7 = %d" % (3 - 7))
print("3 * 7 = %d" % (3 * 7))
print("7 / 3 = %f" % (7 / 3))
print("7 %% 3 = %d" % (7 % 3))
print("3 ** 6 = %d" % (7 ** 3))
print("3 // 6 = %f" % (7 // 3))
运行结果如下:
3 + 7 = 10
3 - 7 = -4
3 * 7 = 21
7 / 3 = 2.333333
7 % 3 = 1
3 ** 6 = 343
3 // 6 = 2.000000
而赋值运算符就是在算术运算符后添加一个 =
(等号),比如:a+=1 等价于: a = a + 1,
8种赋值运算符:=
+=
-=
*=
/=
%=
*=
//=
② 比较运算符(6种)
Python中提供如下六种比较运算符:
==
(等于) !=
(不等于) >
(大于) <
(小于) >=
(大于等于) <=
(小于等于)
比较结果会返回一个布尔值,True
或 False
,一般在条件判断那里会用到。
③ 位运算符(6种)
位运算符是把数字看做二进制来计算,首先你要了解禁止转行,我们平时说的数字都是十进制,十进制如何转换成二进制?一直求余法
,举个例子,十进制的6转换为二进制:
6 % 2 = 0 得出第一位为0
6 / 2 = 3
3 % 2 = 1 得出第二位为1
3 / 2 = 1
1 % 2 = 1 得出第三位为1
# 所以十进制的6转成二进制的值就是:110
# 再试试十进制的17转二进制:
17 % 2 = 1 得出第1位为1
17 / 2 = 8
8 % 2 = 0 得出第2位为0
8 / 2 = 4
4 % 2 = 0 得出第3位为0
4 / 2 = 2
2 % 2 = 0 得出第4位为0
2 / 2 = 1
1 % 2 = 1 得出第5位为1
所以十进制的17转二进制的值就是:10001,知道十进制怎么转二进制了,那么二进制怎么转十进制呢?用到**权值相加法
**,比如二进制的110转十进制:
1*2^2+1*2^1+0*2^0=4+2=6
再试试10001转十进制:
1*2^4+0*2^3+0*2^2+0*2^1+1*2^0=16+1=17
Python中提供了bin函数,可以获得一个整形数字的二进制表示,下面通过示例程序来了解Python中的6种位运算符:
a = 6
b = 17
print('a 对应的二进制值 %s' % bin(a))
print('b 对应的二进制值 %s' % bin(b))
# & 按位与,两个相应位都为1则为1,否则为0
print('a & b = %s 对应十进制的值为: %d' % (bin(a & b), a & b))
# | 按位或,两个相应位有一个为1,则为1,两个都不为0,才为0
print('a | b = %s 对应十进制的值为: %d' % (bin(a | b), a | b))
# ^ 异或,两个相应位不同为1,相同为0
print('a ^ b = %s 对应十进制的值为: %d' % (bin(a ^ b), a ^ b))
# ~ 按位取反,二进制位取反,0变1,1变0
print('~a = %s 对应十进制的值为:%a' % (bin(~a), ~a))
# << 左移运算符,所有位向左移一定位数,高位丢弃,低位补0
print('a << 2 = %s 对应十进制的值为:%a' % (bin(a << 2), a << 2))
# >> 右移运算符,所有位向右移一定位数
print('a >> 2 = %s 对应十进制的值为:%a' % (bin(a >> 2), a >> 2))
输出结果如下:
a 对应的二进制值 0b110
b 对应的二进制值 0b10001
a & b = 0b0 对应十进制的值为: 0
a | b = 0b10111 对应十进制的值为: 23
a ^ b = 0b10111 对应十进制的值为: 23
~a = -0b111 对应十进制的值为:-7
a << 2 = 0b11000 对应十进制的值为:24
a >> 2 = 0b1 对应十进制的值为:1
④ 逻辑运算符(3种)
Python中提供了三种逻辑运算符,分别是:and
(逻辑与),or
(逻辑或),not
(逻辑非),一般在条件判断的时候会用到,代码示例如下:
score = 70
# 逻辑与,两个表达式都成立,才执行
if score > 60 and score < 100:
print('分数及格')
# 逻辑与,有一个表达式成立就执行
score = -10
if score < 0 or score > 100:
print("分数值非法,不能小于0或者大于100")
# 逻辑非,逆转,表达式成立的话反而不执行
score = 100
if not score == 100:
print("没有满分")
else:
print("满分")
输出结果如下:
分数及格
分数值非法,不能小于0或者大于100
满分
⑤ 成员运算符(2种)
Python提供了成员运算符,用于「判断指定的序列中是否有某个特定的值」,in
和 not in
,
比如判断列表中是否有某个特定的值的代码示例如下:
people_list = ['小明', '小红', '小白', '小猪']
if '小猪' in people_list:
print("小猪在列表里")
if '大猪' not in people_list:
print("大猪不在列表里")
输出结果如下:
小猪在列表里
大猪不在列表里
⑥ 身份运算符(2种)
Python中提供了身份运算符用于「判断两个标识符是不是引用自一个对象」,is
和 is not
,使用示例如下:
# 普通数据类型
a = 1
b = 1
print('当前a和b引用同一个变量:%s' % (a is b))
# 复杂数据类型(数组)
a = [1]
b = [1]
print('当前a和b引用不同一个变量:%s' % (a is not b))
# 字符串
a = 'python'
b = 'python'
print('当前a和b引用同一个变量:%s' % (a is b))
输出结果如下:
当前a和b引用同一个变量:True
当前a和b引用不同一个变量:True
当前a和b引用同一个变量:True
⑦ 运算符优先级
Python中的运算符优先级如表所示:
运算符 | 描述 |
---|---|
** | 指数 |
~ + - | 取反,正负号 |
* / % // | 乘除,求余,地板除法 |
<< >> | 左右移 |
& | 按位与 |
^ | 异或,按位或 |
> < <= > >= | 比较运算符 |
<> == != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not or and | 逻辑运算符 |
以上是关于Python小白到老司机,快跟我上车!基础篇的主要内容,如果未能解决你的问题,请参考以下文章