本节主要分为两大部分:一部分是理论介绍,一部分是需求练习

一、Python语言基础

1.  进制与原码、反码、补码

二进制是计算机存储的使用进制,除此之外还有八进制,十进制,十六进制

原码:计算机只能识别0和1,而我们的数值是具有正负数之分的。于是在计算机存储数据时,最高位表示符号位,0正数,1负数。

既然有了数值的表示方法就可以对数进行算术运算,但是带有符号位的原码在对进行负数操作时出现了问题。因此引入了反码

反码:对除符号位以外的个位逐位求反,于是就产生了反码。

问题出现在(+0)和(-0)上,在人的概念中0是没有正负之分的,于是就引出了补码的该男

原码:负数的补码就是反码加一

总结:

(1)正数:原码,反码,补码三码合一

(2)负数:

反码:符号位不动,其他安位取反,

补码:负数的补码加一

结论:计算机一补码的形式存储数据

2.  Python中的编码规范与基本语法

(1)分号:不要在行位加分号,也不要使用分号将两条命令写到同一行

(2)行长度:一般情况下每行不要超过80个字符

(3)括号:宁缺毋滥的使用括号

(4)缩进:使用4个空格来缩进代码

(5)空行:顶级定义之间空两行,方法定义之间空一行

(6)语句:每个语句应该独占一行

(7)尽量避免文件名中出现空格和中文

(8)python的语法比较简单,采用缩进的方式,写出的代码大概是这样的,其中#开头的语句是注释,注释是给编程人员看的,解释器会忽略掉注释。其他每一行就是一个语句,当语句以:冒号结尾是,缩进的语句为代码块

#print absolute value of an integer:
a = 100
if a >=0:print(a)else:print(-a)

3.  标识符

标识符规则:

(1)只能有字母、数字、下划线组成

(2)开头不能是数字

(3)不能是Python的关键字

例如def,False,True,and , break,class,del

(4)区分大小写

(5)取名字要做到见名知意

作用:给变量、函数,类等命名

4.  Python数据类型和变量

(1)数据类型

计算机是用来做数学计算的机器,因此它可以处理各种数值,但是计算机能够处理的远远不止是数值,它还可以处理文本、图形、音频、视频等各种各样的数据,不同的数据要定义不同的数据类型。

Python的数据类型主要分为以下几大类:

Number(数字)

整数(int)

浮点数(float)

负数

String(字符串)

字符串是以单引号或双引号括起来的任意文本。当字符串内部包含单引号有或双引号时,我们需要使用转义字符“\”。其中\n表示换行,\t表示制表符,字符\本身也需要转义。

Boolean(布尔值)

布尔值只有True,False两种

None(空值)

空值是python里一个特殊的值,用None表示,None不能为0,而None是一个特殊的空值。

list(列表)

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

tuple(元组)

另一种有序的列表叫元组:tuple。tuple和list非常相似,但是tuple一旦初始化就不能修改

dict(字典)

Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值存储,具有极快的查找速度。

set(集合)

set和dict类似,也是一组key的集合,但是不存储value。由于key不能重复,所以,在set中,没有重复的key。

(2)变量

变量的概念基本和代数的方程变量是一致的,知识在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。

概述:程序可操作的存储区的名称,在运行的期间能够改变的数据,每个变量都是特定的类型

作用:将不同类型的数据存储到内存中

变量的定义:

变量名 = 初始值,其中给定初始值的原因是因为确定变量的类型

(3)常量:

程序运行期间不能改变的数据

5.  算术运算符与表达式

算术运算符

假设变量 a = 10, b = 20

+ :加 两个对象相加 例如 a + b = 30

- :减 标识负数/一个数减去另一个数 a - b = -10

* :乘 两个数相乘/返回一个被重复若干次的字符串 a*b=200

/ : 除 b除以a b/a = 2

% : 取模 返回除法的余数 b%a =0** :幂,返回x的y次幂 a**b=10^20

// : 取整除返回商的整数部分 9//2=4, 9.0//2.0=4.0

算术运算表达式

功能:进行相关符号的数学运算,不会改变变量的值

值:相关的数学运算的结果

6.  比较运算符

== 等于,比较对象是否相等,返回布尔类型的值

!= 不等于,比较对象是否不相等

>= 大于等于

<= 小于等于

> 大于

< 小于

6.  赋值运算符与赋值运算表达式

赋值运算符 =

赋值运算表达式

格式:变量 = 表达式

功能:计算了等号右侧的“表达式”的值,并赋值给等号左侧的变量

复合运算符:

+= 加法赋值运算符 a += b a = a +b-= 减法赋值运算符 a -= b a = a -b*= 乘法赋值运算符 a *= b a = a *b/= 除法赋值运算符 a /= b a = a /b%= 取模赋值运算符 a %= b a = a %b**= 幂赋值运算符 a **= b a = a **b//= 取整除赋值运算符 a //= b a = a // b

7.  逻辑运算符

and运算:与运算

or运算:或运算

not运算:非运算,它是一个单目运算,True变成False,False变成True

8.  位运算符

我们进行位运算的时候,我们需要把数字转换为二进制数来进行计算&按位与|按位或^按位异或~按位取反<<左移>> 右移

与运算【&】:

参与运算的两个值,如果两个相应为都为1,则改位的结果为1,否则为0

按位或【|】

只要对应的两个二进位有一个为1时,结果就为1

按位异或【^】

当两对应的二进位相异时,结果为1

按位取反【~】

对数据的每个二进制位取反,即把1变成0,0变成1

.左移运算符【<<】

运算数的各二进位全部左移若干位,由”<<”右边的数指定移动的位数,低位补0

注意:向左移动,右边空出来的补0,左移其实就是乘以2的位数次幂

右移运算符【>>】

把”>>”左边的运算数的各二进位全部右移若干位,”>>”右边的数指定移动的位数

注意:如果最高位0,右移后,用0补空位,如果最高位1,右移后,用1补空位,右移其实就是除以2的位数次幂。

9.  成员运算符

in:如果早指定的序列中找到返回值True,否则返回False

not in:如果在指定的序列中灭有找到值返回True,否则返回False

10.  身份运算符

is:is判断两个标识符是不是引用自同一个对象

is not:判断两个标识符是不是引用自不同的对象