day2-python基础语法总结

1、常用快捷键

  • 添加或取消一行注释:ctrl+/(通用)
  • ctrl+s 保存
  • ctrl+n 新建
  • ctrl+f 搜索
  • ctrl+r 搜索替换
  • ctrl+z 撤销
  • ctrl+shift+z 反撤销
  • ctrl+a ctrl+c trl+v
  • ctrl+d 复制上一行代码到下一行
  • tab 补充代码
    程序中涉及到的所有的和语法相关的符号,都是英文输入法下对应的符号
    print是python内置函数,在控制台打印括号中的内容
    引号是字符串的标志
print("Hello world!")
print('Hello Hello Hello')

运行结果:


控制台输出

2、python基础语法

2.1注释

  • 注释是程序中说明文字,不会参与程序的编译和执行,对程序和功能没有任何影响。
  • 单行注释:在说明性文字前加#
  • 多行注释,3'或3"括起来,来设置多行注释,
    一般使用3个"

2.2标识符

  • 标识符是专门用来给变量、函数、类等命名的。
    要求
    python中的标识符要求是由数字、字母和下划线组成,并且数字不能开头
    注意
    1.在python3.x,标识符中可以包含非ASCII码字符,如汉字、日语、韩语、拉丁等。
    2.开发时不要使用非ASCII码字符。例:
num = 100
_num = 200
__ = 300
  • 1num = 400 错误,不能以数字开头
  • n - num = 500 错误,减号也不行,只能是数字、字母和下划线

2.3行与缩进

  • python中对代码里面的缩进有严格要求。同一级代码前面的缩进(空格/tab)的个数必须一致,否则报错。
  • 用空格或tab都行,一般用tab
  • 行的规范:要求声明函数和类的前后需要有两个空行。

2.4分段(行)显示

  • 一句代码很长,需要多行显示的时候,可以在需要换行的位置加\,表示前后是一行,后面的行无缩进要求,建议对齐
    注意:加\时,不能将一个数据,一个变量名给拆开。
num = 28 + 3333333333333333333\
      + 23333
  • 如果代码是列表、元组、字典、集合的字面量,可以直接换行,不用加\

2.5一行显示多条语句

  • 一般要求一条语句写一行,如果一行写多条语句它们之间需要加 ;例:
print(1);print(2);print(3)

2.6关键字(保留字)

  • python中已经定义好有特殊功能和意义的一些标识符,就是python的关键字,命名时不能使用。
import keyword                   #导入模块
print(keyword.kwlist)          #打印python中关键字列表

输出结果:
['False', 'None', 'True', 'and', 'as',
'assert', 'break', 'class', 'continue',
'def', 'del', 'elif', 'else', 'except',
'finally', 'for', 'from', 'global',
'if', 'import', 'in', 'is', 'lambda'匿名,
'nonlocal', 'not', 'or', 'pass', 'raise',
'return', 'try', 'while', 'with', 'yield']

2.7print函数和input函数

  • print(内容)--在控制台中打印内容,内容必须是python数据
  • print(内容1,内容2)--在一行打印多个内容,显示时它们之间用空格隔开
  • 默认情况下,一个print中的内容占一行(以换行结束)。一个print中的多个内容用空格隔开
    print(内容1,内容2,...,end='换行标志')
    print(内容1,内容2,...,seq='分割标志')
    例:
_num = 200
print('a','b',_num,end='------>')
print(1)
print(2)
print('a','b',_num,sep='----->')

输出结果:


输出结果
  • input()--从控制台输入一串内容,以回车结束。并将内容以字符串形式返回
    注意:
    程序执行到input的时候,程序会停下来,直到输入完成位置。
    input('提示信息')--先打印提示信息,后执行input。
    例:
def f(x,y):
    sum = x + y
    return(sum)


l=[]
a = int(input("请输入第一个数字:"))
b = int(input("请输入第二个数字:"))
n = 0
while n < 100:
    c = f(a,b)
    l.append(c)
    a,b = b,c
    n = n+1
print(l)

输出:

结果

3.常用数据类型

3.1常见数据类型及其字面量(常量)

  • python中常用数据类型有:
    整型:100,23,-122,333等,所有的整数
    浮点型:12.3,45.0,-0.123456 所有的小数
    布尔: True,False 首字母需大写
    字符串:'任',"意",'字',"符" 由双引号或单引号括起来的内容
    列表: [12,'abc',True]
    字典: {key1:value1,key2:value2,key3:value3} {'a':120,'b':110,'c':100}
    元组: (12,'abc',True)
    集合:
    函数;等

3.2数字相关类型

  • python中和数字相关的类型:整型、浮点型、布尔、复数(虚数5j+1)
    1.整型(int):整数对应的类型,包含所有整数。python3中整数对应的类名只有int,
    python2中除了int还有long型
    python中的整数,可用十进制、二进制、八进制、十六进制来表示
    2.浮点型(float):小数对应的类型,包含了所有的小数。支持科学计数法。
    3.布尔(bool):只有两个值True和False,都是关键字,首字母大写,分别表示“真”和“假”。
    True实质是数字1,False实质是数字0。
    4.复数(complex):表示所有的虚数对应的类型,用“数字+j”表示虚部,实部就是普通数字。
print(2e4)  # 2*10^4 = 20000
print(3e-2) # 3*10^-2 = 0.03

print(1+True,1+False)    # 2 和 1
print((1+2j)+(2-1j))     # 3-1j

3.3type函数

  • type(数据)--获取数据的类型
print(type(666))    # int

3.4isinstance函数

  • isinstance(数据,类型)--判断指定的数据是否是指定的类型,结果为bool值。
print(isinstance(100,float))  #判断100是否为浮点型,False
print(isinstance(100,int))    #判断100是否为浮点型,True

3.5类型的强制转换

  • 目标类型名(需要转换的数据)--将指定的数据转换成目标类型,所有的类型都可以。
  • 浮点型转换成整型:直接去掉小数部分
  • 整型转换成浮点型:在整数后加.0
  • 其他类型转布尔:bool(),所有的数据都能转成bool值。除了0转换成False,其他全为True。
    注意:复数不能转换成整型或浮点型,但能转换成布尔型。
b = int(12.5)
print(b)               # 12
print(float(b))        # 12.0
print(bool(b))         # True
print(bool(-b))        # True
print(float(True))     # 1.0
print(complex(10))      # 10+0j
print(complex(-10))     # -10+0j

4.进制

4.1十进制

  • 基数:0,1,2,3,4,5,6,7,8,9
  • 进位:满10进1
  • 位权:123 = 110^2 + 210^1 + 3*10^0 第n位的位权为 (10^(n-1))
  • 表示方式:所有的数字都是10进制(数字直接写)
20
33
12

4.2二进制

  • 基数:0,1
  • 进位:满2进1
  • 位权:1101 = 12^3 + 12^2 + 02^1 + 12^0 = 13 第n位的位权为 (2^(n-1))从1开始记位
  • 表示方式:在二进制数前加前缀----> 0b或0B
0B110 + 0B011    #   1001
0B1 + 0B1        #   10
0B110 - 0B011    #   011

4.3八进制

  • 基数:0,1,2,3,4,5,6,7
  • 进位:满8进1
  • 位权:123 = 18^2 + 28^1 + 3*8^0 第n位的位权为 (8^(n-1))从1开始记位
  • 表示方式:在八进制前加前缀----> 0o或0O 大小写都可以
0o12 + 0o26     #0o40

4.4十六进制

  • 基数:0,1,2,3,4,5,6,7,8,9,a(10),b(11),c(12),d(13),e(14),f(15)(A-F) 大小写都可以
    进位:满16进1
  • 位权:123 = 116^2 + 216^1 + 3*16^0 第n位的位权为 (16^(n-1))从1开始记位
  • 表示方式:在十六进制前加前缀----> 0x或0X 大小写都可以
print(0x12a)            #结果为10进制数
print(0xabc12)
print(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)

4.5其他进制和十进制之间的转换

1.其他进制转十进制:每一位数*权值,再求和
2.十进制转其他进制:累除

4.6二进制和八进制、十六进制互转

1.二进制转八进制:每3位2进制转成1位八进制。
八进制转2进制:每1位八进制转成3位二进制

0b 001 100 100 110 010 011 100 = 0o1446234
表示 1 4 4 6 2 3 4

二进制小数--------------->>>>十进制小数
“按权展开求和法”:
例1:将101.111(2)转换成十进制数
1*(2^2) + 0*(2^1) + 1*(2^0) + 1*(2^(-1)) + 1*(2^(-2)) + 1*(2^(-3))=5.875
只要记住个位数是2的0次方,往右一次增加,往左一次减少,写出关系式之后各式相加就是所求

十进制小数-------------->>>>二进制小数
(十进制数的整数位是二进制数的整数位,十进制数的小数位是二进制数的小数位)
“乘二取整法”(顺序排列):
假如我们有小数111.4(10),我们对他进行一下计算:
首先取小数位0.4,对其进行“乘二取整法”
0.42=0.8 取结果的的整数位置上的数是0 | 按 (取整法就是取整数位上的数字)
0.8
2=1.6 取1 | 顺
0.62=1.2 取1 | 序
0.2
2=0.4 取0 | 写
0.42=0.8 取0 | 出
0.8
2=1.6 取1 |
0.62=1.2 取1 |
0.2
2=0.4 取0 |
来到这了,我们发现出现了循环,因此可以推知小数点后的二进制是
0.01100110……(循环0110)
接下来是整数111
我们这里用“除以2取余法,逆序排列”

day2-python基础语法总结_第1张图片
累除法

所以整数位是1101111
最终结果是整数位和小数位合并1101111.01100110……(2)
当我们对小数0.1(10) 0.2(10) 0.3(10) 0.4(10) 0.5(10) 0.6(10) 0.7(10) 0.8(10) 0.9(10)
发现只有0.5(10)不会出现循环小数,他转换成二进制是0.1(2)
其余的出现循环的小数

2.二进制转十六进制:每4位2进制转成1位十六进制。
十六进制转2进制:每1位十六进制转成4位二进制

0b 0110 0100 1100 1001 1100 = 0x64c9c
表示 6 4 c 9 c

0x6745 = 0b0110 0111 0100 0101
0xa12 = 0b1010 0001 0010

3.八进制转十六进制:先转为二进制。

4.7进制转换相应的函数--返回值是字符串

  • bin(数字)-- 将其他进制的数转为二进制数
  • oct(数字)--将其他进制的数转为八进制数
  • hex(数字)--将其他进制的数转为十六进制
    所有进制计算时均会自动转换成十进制
print(bin(0x6745))            #0b110011101000101
print(bin(0o1446234))         #0b1100100110010011100
print(oct(0x6745))            #0o63505
print(hex(0o1446234))         #0x64c9c

5.原码、反码和补码

5.1计算机数据的存储

  • 以下值均为二进制
  • 计算机能直接存储的是数字,并且存的是数字的补码

5.2计算机内存大小单位

位(bit)
1字节 = 8位
1kb = 1024字节
1mb = 1024kb
1GB = 1024mb
1TB = 1024Gb

5.3原码

  • 符号位+真值 (用最高位表示符号位,后面的即为数字的二进制)
    符号位: 0 ---> 正,1---> 负
    真值: 数字对应的二进制值

10(原码) = 0 000 1010
-10(原码)= 1 000 1010

5.4反码

  • 正数的反码和原码一样。负数的反码是符号位不变,其他位上的数取反(0变1,1变0)

10(反码) = 0 000 1010
-10(反码)= 1 111 0101

5.5补码:

  • 正数的补码和原码一样。负数的补码是它的反码加1。

10(补码) = 0 000 1010
-10(补码)= 1 111 0110

注意:数据存储和运算的时候采用的是补码。看结果看的是原码。
单片机 只有加法和乘法器

案例:

如果计算机存储的是原码:
3:0011
2:0010
3+2 = 0101 = 5

原码:
3-2 = 3+(-2) = 1101 = -5
3: 0011
-2:1010

补码:
3(补) = 0011
-2(补) = 1101(反) = 1110(补)
0011(补)+1110(补) = 0001(补) = 0001(原) = 1

2-3
2:0010(原)= 0010(补)
-3:1011(原) = 1100(反)= 1101(补码)
0010(补)+ 1101(补码) = 1111(补码)= 1110(反) = 1001 = -1

你可能感兴趣的:(day2-python基础语法总结)