美文网首页
Day2-笔记整理

Day2-笔记整理

作者: 大大峰 | 来源:发表于2018-11-06 18:00 被阅读0次

    第一个Python程序

    1.快捷键

    ctrl + / - 添加或者取消一行注释
    ctrl + s - 保存
    ctrl + c - 复制
    ctrl + v - 粘贴
    ctrl + n - 新建文件
    ctrl + f - 搜索
    ctrl + r - 搜索+替换
    ctrl + z - 撤销
    ctrl + shift + z - 反撤销
    ctrl + a - 全选
    shift + 鼠标 - 选中指定范围
    tab - 补全代码

    2.注意事项

    程序中涉及到的所有和语法相关的符号,都是在英文输入法下对应的符号

    print,是python内置函数,作用是用来打印括号中的内容
    单引号是字符串的标志

    print('HELLO world')
    print('HELLO python')

    python基础语法

    1.注释

    注释是程序中专门用来注释说明的文字。不会参与程序编译和执行。对程序的功能没有任何影响
    单行注释:在说明性文字前加#

    使用三个单引号或者三个双引号括起来,来设置多行注释
    但是一般使用三个双引号

    2.标识符

    标识符就是专门用来命名的。给变量命名、函数命名、类命名等

    要求:
    python中的标识符要求是由数字、字母和下划线组成,并且数字不能开头

    注意,在python3.x,标识符中可以包含非ASCII码字符(非ASCII码包含中文、日语、韩语、拉丁等)。
    但是,在实际开发的时候不要用

    num = 100
    num2 = 100
    __ = 100
    12abc = 100
    你好 = 100
    n-m = 100 # SyntaxError: can't assign to operator

    3.行与缩进

    python中对代码里面的所有有严格要求。同一级代码前面的缩进(空格/tab)的个数必须一致
    行的规范:要求声明函数和类的前后需要有两个空行

    print('hello world') # IndentationError

    if 100 > 10:
    print('大于')

    4.分段(行)显示
    一句代码很长,需要多行来显示的时候,可以在需要换行的位置加
    注意:加\的时候不能将一个数据,一个变量名给拆开

    num = 2837487 + 34398748 + 384798578 +
    37847578 + 347895789 + 457279 +
    345234757 + 3549087 + 3457078

    如果代码是列表、元祖、字典、集合的字面量,可以直接换行,不用加\

    list1 = [
    12,
    23,
    4543,
    'ahgshgd',
    'sjhfjkh'
    ]

    5.一行显示多条语句

    一行显示一条语句的时候,后面不用加分号。但是如果希望在一行显示多条语句,那么多条语句之间必须加分号

    print('aaa');print('bbb')

    6.关键字(保留字)

    python中已经定义好的有特殊的功能或者特殊的意义的一些标识符,就是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'

    import keyword # 导入keyword模块
    print(keyword.kwlist) # 打印python中所有的关键字

    and = 100 # SyntaxError: invalid syntax

    7.print函数和input函数

    (掌握)
    print(内容) - 在控制台中打印内容(内容必须是python数据)
    print(内容1, 内容2, ..., 内容n) - 在一行打印多个内容,在控制台显示的时候多个内容之间用空格隔开

    默认情况下,一个print中的内容占一行(以换行结束)。一个print中的多个内容用空格隔开
    (了解)

    print(内容,内容1,...,内容n, end='换行标志')
    print(内容,内容1,...,内容n, sep='分割标志')

    print('打印1')
    print(100)
    print('abc', 'bcd', 200)

    print('打印1', end='==')
    print(100)
    print('abc', 'bcd', 200, sep='@')
    print('abc', 'bcd', 200, sep='')

    input() - 从控制台输入一串内容,以回车结束。并且将内容返回(以字符串的形式返回)
    input('提示信息')

    注意:程序执行到input的时候,程序会停下来,直到输入完成为止

    print(input('请输入:'))

    python常用语法

    python中常用的数据类型有:整型、浮点型、布尔、字符串、列表、字典、元祖、集合、函数等....
    1.常见数据类型的字面量(常量)

    整型: 100, 23, -129 -- 所有的整数
    浮点型: 12.3, 45.0, -0.1123 -- 所有的小数
    布尔: True, False -- 只有两个值
    字符串: 'abc', "ahjs", '348sj', "上的+-" -- 由双引号或者单引号括起来的内容
    列表: [12, 'abc', True]
    元祖:(23, 89, 'asd')
    字典:{'ab': 120, 18:'abc'}

    100
    12.3
    True
    '348sj'
    [12, 'abc', True]
    (23, 89, 'asd')
    {'ab': 120, 18:'abc'}

    2.数字相关类型

    """
    python中和数字相关的类型:整型、浮点型、布尔、复数(虚数)
    a.整型(int):整数对应的类型,包含了所有的整数。python3.x中整数对应的类型只有一个:int
    python2.x中整数对应的类型有:int和long

    python中的整数,除了可以用十进制表示,还可以用二进制、八进制和十六进制进行表示

    12
    200
    -100

    a.浮点型(float): 小数对应的类型,包含了所有小数。
    支持科学计数法

    12.90
    -12.03

    2e4 # 20000.0
    print(2e4)
    print(3e-2)

    c.布尔(bool): 只有True和False, 其中True表示真,False表示假。
    True实质就是数字1,False实质是数字0
    True和False都是关键字

    print(True, False)
    print(1+True, 1+False)

    d.复数(complex): 所有的虚数对应的类型
    数字后面加j,来表示复数的虚部。实部就是普通数字

    10+1j
    20-9j
    print((10+1j)+(20-9j))

    3.type函数

    type(数据) - 获取数据对应的类型

    print(type(100))
    print(type(10+2j))

    4.isinstance函数

    isinstance(数据,类型) - 判断指定的数据是否是指定的类型,结果是布尔值

    isinstance(100, float) # 判断100是否是float类型
    print(isinstance(100, float)) # False
    print(isinstance(100, int)) # True

    5.类型的强制转换

    类型名(数据) - 将指定数据转换成指定类型
    整型转成浮点型: 在整数的后面加.0 float()
    浮点型转换成整型: 只保留小数点前面的整数部分 int()
    其他类型转布尔: 0转换成False,其他的转换成True bool()

    注意:复数不能转换成整型和浮点型,可以转换成布尔类型(不管什么数据都可以转换成布尔)

    print(float(False))
    print(int(False))
    print(bool(10+10j))

    进制

    1.十进制

    a.基数:0,1,2,3,4,5,6,7,8,9
    23
    123
    90
    89
    77677676

    b.进位:逢10进1
    c.位权:123 = 110^2 + 210^1 + 3*10^0 (10^n)

    d.表示: 所有的数字都是10进制数(数字直接写)

    123
    10
    78
    67

    2.二进制

    a.基数: 0,1

    011011010001001001
    111010101

    b.进位: 逢2进1

    1+0 = 1
    0+1 = 1
    0+0 = 0
    1+1 = 0 -- 进1
    110 + 011 = 1001
    101+110 = 1011

    c.位权: 1101(2) = 12^0 + 02^1 + 12^2 + 12^3 = 13 (2^n)

    d.表示: 在二进制数前加前缀:0b或者0B

    0b10101
    0B01010

    0b2100 # SyntaxError: invalid syntax

    3.八进制
    """
    a.基数:0,1,2,3,4,5,6,7
    67
    12
    106465
    b.进位:逢8进1
    c.位权: 123(8) = 38^0 + 28^1 + 1*8^2 = 83 (8^n)

    d.表示:在八进制数加前缀:0o或者0O

    0o12
    0O67

    4.十六进制

    a.基数:0,1,2,3,4,5,6,7,8,9,a(10),b(11),c(12),d(13),e(14),f(15)
    字母大写和小写都可以

    123
    12a
    ff
    ef
    abc
    abc12

    b.进位:逢16进1
    c.位权: 123(16) = 316^0 + 216^1 + 1*16^2 (16^n)

    d.表示: 在十六进制数的前面加前缀:0x或者0X

    0x12a
    0Xffee
    0X1023

    num = 0x1010
    print(num)

    5.其他进制和十进制之间的转换

    a.其他进制转十进制:每一位上的数*权值,然后再求和

    110(2) = 12^1 + 12^2 = 6(10)
    110(8) = 18^1 + 18^2 = 72(10)
    110(16) = 116^1 + 116^2 = 272(10)

    b.将十进制转换成其他进制

    100(10) = 1100100(2)
    100(10) = 144(8)
    100(10) = 64(16)

    79(10) = 1001111(2)
    79(10) = 117(8)
    79(10) = 4f(16)

    6. 二进制和八进制十六进制的相互转换

    a.二进制转八进制:每3位的二进制转换成1位的八进制

    001100100110010011100(2) = 1446234(8)

    八进制转二进制:每1位8进制,转换成3位的二进制

    6745(8) = 110 111 100 101(2)

    b.二进制转十六进制:每4位的二进制转换成1位的十六进制

    0110 0100 1100 1001 1100(2) = 64c9c(16)

    十六进制转二进制:每1位16进制,转换成4位的二进制

    6745(16) = 0110 0111 0100 0101(2)
    a12(16) = 1010 0001 0010(2)
    """

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

    bin(数字) - 将数字转换成2进制

    print(bin(100))

    print(bin(0x6745))
    print(bin(0o76))

    oct(数字) - 将数字转换成8进制

    print(oct(100))
    print(oct(0x1af))
    print(oct(0b110001101))

    hex(数字) - 将数字转换成16进制

    print(hex(100))
    print(hex(0o67))

    print(hex(0b11011101110))

    所有进制最后会自动转换成10进制

    num = 0xaf
    print(num)

    print(0b111 + 0b110)

    原码、反码、补码

    1.计算机数据的存储

    计算机能够直接存储的是数字,并且存的数字的补码

    2.计算机内存大小单位

    位(bit)
    1字节 = 8位
    1KB = 1024字节
    1MB = 1024KB
    1GB = 1024MB
    1TB = 1024GB

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

    10(原码) = 00001010
    -10(原码) = 10001010

    4.反码:

    正数的反码和原码一样。负数的反码是符号位不变,其他位上的数取反(0变成1,1变成0)
    10(反码) = 00001010
    -10(反码) = 11110101

    5.补码:

    正数的补码和原码一样。负数的补码就是反码加1
    10(补码) = 00001010
    -10(补码) = 11110110

    注意:数据存储和运算的时候采用的是补码。看结果看的是原码

    如果计算机存储的是原码:

    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-笔记整理

          本文链接:https://www.haomeiwen.com/subject/yknyxqtx.html