基础知识点(已更新)

基础部分

1、编程语言

总体分为机器语言、汇编语言、高级语言

  • 机器语言属于低级语言,用二进制代码0和1描述的指令

    指令部份的示例
    0000 代表 加载(LOAD)
    0001 代表 存储(STORE)

  • 汇编语言的实质和机器语言是相同的,只不过将每一步具体的操作用命令的形式写出来,指令采用了英文缩写的标识符,更容易识别和记忆。

    msg db “Hello, world!”, 0xA ; 要输出的字符串

  • 高级语言将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节。高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行。

高级语言按转换方式分为两类:
编译类:编译是指在执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行(编译后生成的可执行文件,是cpu可以理解的2进制的机器码组成的),使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件才能执行,只有目标文件而没有源代码,修改很不方便。
编译后程序运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如C、C++、Delphi等

解释类:应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器(想运行,必须先装上解释器,就像跟老外说话,必须有翻译在场),但这种方式比较灵活,可以动态地调整、修改应用程序。如Python、Java、PHP、Ruby等语言。解释型跨平台好,一份代码,到处使用,缺点是执行速度慢,依赖解释器运行
在这里插入图片描述

2、变量名

  • 必须是大小写英文、数字和_的组合,且不能用数字开头,中间不能有空格。

  • 两种方式:驼峰体和下划线

  • 程序员约定俗成用变量名全部大写代表常量

  • 以下关键字不能声明为变量名[‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]

对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。
执行a = ‘ABC’,解释器创建了字符串’ABC’和变量a,并把a指向’ABC’:
在这里插入图片描述
执行b = a,解释器创建了变量b,并把b指向a指向的字符串’ABC’:
在这里插入图片描述
执行a = ‘XYZ’,解释器创建了字符串’XYZ’,并把a的指向改为’XYZ’,但b并没有更改:
在这里插入图片描述

3.注释

代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号""" “”"
注释可以用中文和英文,但是不要用拼音啊。

三种基础数据类型

数据类型分为可变(列表,字典,集合)和不可变(字符串,整型,布尔值,元祖)

数字

1、基础

int(整型)
在32位机器上,整数的位数为32位,取值范围为-231~231-1,即-2147483648~2147483647
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意:在Python3里不再有long类型了,全都是int

type()是查看数据类型的方法

注意:使用除法运算符计算结果都是浮点数,2/2计算结果是1.0,
使用整除运算//,分子分母有一个是浮点数,结果是浮点数,2//2结果是1,2.0//2结果是1.0.取余运算%与整除运算类似。

2、二进制、八进制、十六进制

Python语言一共可以表示4种进制,二进制、八进制、十进制、十六进制。
以0开头,二进制字母b,转换函数bin
八进制字母o转换函数oct,
十六进制字母x,转换函数hex。
0b110001
0o56435
0xF765A
转换成十进制用int函数,格式:int(‘参数值‘,参数值的进制)

Int(‘110001’,2) :二进制转十进制
Int(‘112345’,8) :八进制转十进制
bin(12):十进制12转成二进制
bin(0xF012E):十六进制转二进制
oct(1234):十进制转八进制
hex(123):十进制转十六进制
hex(0b110001):二进制转十六进制

3、数字的格式化输出

format函数对数字进行格式化

x = 1234.5678888279
print(format(x,'0.2f'))  #小数点后两位
print(format(x,'<12.3f'))    #12个字符长度内,左对齐,小数点后3位,自动四舍五入
print(format(x,'>12.3f'),20)   #同上,右对齐
print(format(x,'0<20.2f'),20) #20个字符长度内,左对齐,不够位补0,小数点后保留2位,紧接着输出20
print(format(x,'^10.3f'),20) #10个字符长度内居中,3位小数
print(format(x,',.2f'))  #逗号隔开千分位
print(format(x,'e')) #科学记数法
print(format(x,'0.2e'))#科学记数法,小数点后两位

4、浮点数精确度

python默认的是17位精度,也就是小数点后16位,尽管有16位,但是这个精确度却是越往后越不准的。

首先,这个问题不是只存在在python中,其他语言也有同样的问题

其次,小数不精准是因为在转换成二进制的过程中会出现无限循环的情况,在约省的时候就会出现偏差。

比如:11.2的小数部分0.2转换为2进制则是无限循环的00110011001100110011…

需要使用更高的精度的时候:
借助decimal模块的“getcontext“和“Decimal“ 方法

from decimal import*
getcontext().prec=50
a=Decimal(1)/Decimal(3)  #注,在分数计算中结果正确,如果直接定义超长精度小数会不准确
print(a)
0.33333333333333333333333333333333333333333333333333

字符串

在Python中,加了引号的字符都被认为是字符串

1、单引号,多引号和转义符

python解释器无法判断字符串中间的单引号是正常的字符还是多余的单引号,要输出单引号或双引号时需用双引号或单引号括起来。

print("let's go")  # let's go
print('学习"python"') # 学习“python”

同时输出单引号和双引号需要转义符,python转义符是反斜杠“\”
作用是告诉python解释器转义符之后的是字符串一部分。

print('let\'s go,"一人我饮酒醉")# let's go,"一人我饮酒醉"

不过有时候不想python解释器转义特殊字符,希望转义字符正常输出,可以用反斜杠,可以用repr函数,也可以在字符串之前加r,例如:

print("hello\nworld")
  #hello
   world 转义符\n占了一个字符长度
print(repr('hello\nworld')) 
 'hello\nworld'   注意输出结果有单引号
print('hello\\nworld') 
   hello\nworld 区别在于没有单引号,转义符\n,占了两个长度
print(r'''hello\nworld''') #三个单引号和一个单引号一样
print(r''hello\nworld'')#两个就报错

长字符多行可以用三个单引号或双引号括起来。

布尔值

布尔值只有True、False两种值,下面的值会被解释成布尔值中的False:
None o “ ” () [ ] { }
在python语言底层,会把True 看作1, False看作0,所以:
True == 1
True

False == 0
True

True +False +20
21

布尔运算:布尔值可以用and、or和not运算。
注意:
a=10
b=20
a and b
20

b and a
10

要解释上述结果,又涉及到 and 和 or 运算的一条重要法则:短路计算。

1.计算 a and b ,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。
2.在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

运算符

运算种类分为算术运算,比较运算,逻辑运算,赋值运算,位运算,身份运算,成员运算。
菜鸟教程比较详细
https://www.runoob.com/python3/python3-basic-operators.html
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值