Python基础,,一、数据类型和变量
Python基础,,一、数据类型和变量
一、数据类型和变量
python的数据类型包括:整数、浮点数、字符串、空值、布尔值;
整数
Python可处理任意大小的整数,在程序中的表示方法和数学上的写法完全一样
浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。
字符串
字符串是以‘‘或""括起来的任意文本。
布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(要特别注意大小写),也可以通过布尔运算计算出来。
空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
变量和常量
在计算机中,变量就是用来在程序运行期间存储各种需要临时保存可以不断改变的数据的标识符,一个变量应该有一个名字,并且在内存中占据一定的存储单元,在该存储单元中存放变量的值。而所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量。
数据运算
python语言支持以下几种运算
算术运算
比较运算
Assignment Operators
二进制运算
关系运算
验证运算
算术运算
以下例子a = 10 , b= 20
运算符 | 描述 | 示例 |
+ | 加法运算 | a + b 得 30 |
- | 减法运算 | a - b 得 -10 |
* | 乘法运算 | a * b 得 200 |
/ | 除法运算 | b / a 得 2 |
% | 取模 - 将%号左边的值除以%号右边的值并且将得到的结果的余数返回 | 10%5得0 ,10%3 得1, 20%7 得6 |
** | 幂 - 返回x的y次幂,就是返回多少次方 | 2**8 得256 |
// | 取整除 - 返回x除以y的商的整数部分 | 9//2得4 , 9.0//2.0得4.0 |
比较运算
以下例子a = 10 , b= 20
运算符 | 描述 | 示例 |
== | 判断两个对象是否相等 | (a == b) is not true. |
!= | 判断两个对象是否不相等 | (a != b) is true. |
<> | 判断两个对象是否不相等 | (a <> b) is true. 与 != 运算符一样. |
> | 大于 - 返回a是否大于b | (a > b) is not true. |
< | 小于 - 返回a是否小于b | (a < b) is true. |
>= | 大于等于 - 返回a 是否大于等于b | (a >= b) is not true. |
<= | 小于等于 - 返回a 是否小于等于b | (a <= b) is true. |
赋值运算
运算符 | 描述 | 示例 |
= | 赋值 - 将右边的值赋值给左边的变量名 | c = 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 |
//= | 自取整赋值 | c //= a 相当于 c = c // a |
按位运算(二进制运算)
计算机处理数据的时候都会把数据最终变成0和1的二进制来进行运算,也就是说,计算机其实只认识0和1, 那按位运算其实就是把数字转换成二进制的形式后再进行位运算的,唉呀,说的好迷糊,直接看例子,我们设定a=60; b=13; 要进行位运算,就得把他们先转成2进制格式,那0和1是如何表示60和13的呢?学过计算机基础的人都知道,计算机最小的存储单位是字节,也就是说一个数字、一个字母最少需要用一个字节来存储,然后呢,一个字节又由8个2进制位来表示,也就是8bit,所以呢,一个计算机中最小的数据也需要用一个字节来存储噢。那为是什么8位而不是9位、10位、20位呢?这个问题上学的时候应该都讲过,不明白的自己网上查下吧再。8个二进制如何表示60这个数字呢?聪明的计算机先人们想到了用占位的方式来轻松的实现了,怎么占位呢?如下表所示,我们把8个二进制位依次排列,每个二进制位代表一个固定的数字,这个数字是由2的8次方得来的,即每个二进制位代表的值就是2的第几次方的值,8个二进制位能表示的最大数是2**8=256, 那把60分解成二进制其实就是以此在这8位上做个比对,只要把其中的几位相加,如果结果正好等于60,那这个位就找对了,首先看60 肯定占不了128和64那两位,不占位就设为0,后面的32+16+8+4=60,所以这几位要设置为1,其它的全设置为0,13的二进制算法也是一样的。
二进制位数 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
每位所代表的数字 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
60 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
13 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
如果进行2个10进制数字的位运算
运算符 | 描述 | 示例 |
& | 与运算,这个二进制位必须在2组数中都为真,结果才返回真 | (a & b)得12,二进制位: 0000 1100 |
| | 或运算,这个二进制位只需在其中一组数据中为真即返回真 | (a | b)得 61,二进制位: 0011 1101 |
^ | 异或运算,只要这个二进制位在两组数据中不相同就返回真 | (a ^ b)得 49 ,二进制位: 0011 0001 |
<< | 左移运算,将a整体向左移2位 | a << 2得240,二进制位: 1111 0000 |
>> | 右移运算,将a整体向左移3位 | a >> 3得 7 ,二进制位: 0000 0111 |
看下面的运算过程:
二进制位 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 结果 |
每位所代表的数字 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|
60 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
|
13 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
|
&与运算 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 12 |
|或运算 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 61 |
^异或运算 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 49 |
a<<2 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 240 |
a>>3 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 7 |
逻辑运算符and、or、not
关系运算符in、not in
验证运算符is、is not
Python基础
评论关闭