python学习day2

01 常用快捷键以及pycharm的简单使用

常用快捷键:

ctrl+a --------全选

ctrl+c---------复制

ctrl+v---------粘贴

ctrl+s---------保存

ctrl+z---------撤销

ctrl+shift+z--------反撤销

ctrl+x---------剪切

ctrl+/---------注释与撤销注释

鼠标点击+shift(不放)-------选中部分

鼠标点击+option/alt(不放)-------创建多个光标

02 基础语法

1.注释

​ 程序中不参与编译执行(不参与解释),也不影响程序功能夫人说明性的文字就是注释

  • 单行注释

    在说明性文字前加 # ( # 后面的文字就是注释)

    print('hello world!')    # 这个是打印语句
    
  • 多行注释

    将说明性文字放在 ''' ''' 或者 """ """ 之间

    '''
    多行注释第一行
    多行注释第二行
    .........
    '''
    
    """
    多行注释1
    多行注释2
    .........
    """
    

2.语句

​ 一条有效代码就是一个语句

  • 一般情况下一条语句占一行

  • 一条语句结束不需要分号(如果多条语句要在一行显示,语句之间必须用分号隔开)

  • 如果一条语句很长,需要多行显示的时候,在换行的时候需要用 \ 连接

    print('张三')
    print('abc')
    
    result = 123411 + 2144 * 32145 - 145 - \
           313980 * 212 - 214
    print(result)
    

3.缩进

​ python是通过缩进和冒号来产生代码块的,在没有块语法的时候不能随便在代码中添加缩进

print('第一行')
print('第二行')
if True;
    print('abc')

4.标识符和关键字

  • 标识符 —— 用来给变量、函数、类取名用的

    ​ python中标识符的要求:1)由字母、数字或者下划线(_)组成

    ​ 2)不能由数字开头

    ​ 注意:python3.x中标识符中可以出现中文,但是实际开发的时候不能这么做

    ​ 合法的标识符:L40, 40, a_b10, abc12, _

    ​ 不合法:40L, abc+123, abc.123

  • 关键字

    ​ 有特殊功能或者特殊意义的一部分标识符就是关键字。

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

5.常用的数据

  • 数字数据:用来表示大小的数据才是数字数据,数字数据在程序中表示的时候直接写

    456
    32131
    -2332
    +222
    
  • 文本数据:用文字信息描述的数据就是文本数据,文本数据在程序中表示的时候需要放在单引号或者双引号中

    '重庆开县'
    print(123)
    print('123')
    
  • 布尔值:只有 True 和 False 两个值的数据,通常用来表示 真 和 假。

    True
    False
    

6.常见数据类型

数据类型是对数据的分类

  • int(整型) - 所有整数对应的数据类型。 python2.x还有 long

  • float(浮点型) - 所有的小数对应的类型都是浮点数 (浮点数支持科学计数法)

    3e2
    1.3e-3str(字符串) 
    
  • str(字符串)-所有的文本数据对应的数据类型

  • bool(布尔) - True和False对应的数据类型

  • 其他常见类型:list(列表)、tuple(元组)、dict(字典)、迭代器、生成器、函数、自定义类型

03 输入与输出函数

1.输出函数 - print

  • 用法一:print(数据) - 在控制台打印指定数据(打印结束后会自动换行)
print('hello world!')
print(110)
print(True)
print("你好!")
print('====================================')
  • 用法二:print(数据1, 数据2, 数据3, ...) - 在控制台的一行打印多个数据,数据之间用空格隔开,所有数据打印结束后换行
print('你好', 100, False)
print('====================================')
  • 方法三:print(数据1, 数据2, ..., end=文本数据) - 在控制台的一行打印多个数据,数据之间用空格隔开,所有数据打印结束后打印指定的文本数据(不会换行)
   print('hello world!', end=' ')
   print('====================================')
  • 方法四:print(数据1, 数据2, 数据3,..., sep=文本数据)
   print(10, 20, 30, 40, sep='加上', end='等于')
   print(120)

2. 输入函数 - input

  • 用法: 变量 = input(输入提示信息) - 用变量获取输入提示信息后输入的内容(输入的时候按回车结束)
  • 注意: 不管输入的内容是什么,变量获取到的数据的类型都是字符串
    tel = input('请输入手机号:')
    print(tel)

04 进制

​ 数字在计算机中表现的方式常见得有四种:十进制、二进制、八进制、十六进制

1. 十进制

  • 基数:0,1,2,3,4,5,6,7,8,9
  • 进位:逢10进1
  • 位权:10的n次方 (n从低位到高位从0开始依次增加)
    1231 = 110^3 + 210^2 + 310^1 + 110^0
  • 程序中的表示方式:直接写
   123
   100

2. 二进制

  • 基数:0,1

  • 进位:逢2进1

    """
    11011 + 10111 = 110010
    1011 + 111010 = 1000101
    """
    
  • 位权:2的n次方 (n从低位到高位从0开始依次增加)
    ​ 101011 = 2^5 + 2^3 + + 2^1 + 2^0 = 32 + 8 + 2 + 1 = 43

  • 程序中的表示方式:二进制数前加 0b或者0B

     0b101
     0B1010011

    0b102    # 错误写法

3. 八进制

  • 基数:0,1,2,3,4,5,6,7
  • 进位:逢8进1
   """
   76 + 45 = 143
   """
  • 位权:8的n次方 (n从低位到高位从0开始依次增加)
    123 = 18^2 + 28^1 + 3*8^0 = 64 + 16 + 3 = 83
  • 程序中的表示方式:八进制数前加 0o或者0O
   0o10
   0O27

4. 十六进制

  • 基数:0,1,2,3,4,5,6,7,8,9,a/A,b/B, c/C, d/D, e/E, f/F
  • 进位:逢16进1
   """
   9 + 6 = F
   7 + 9 = 10
   """
  • 位权:16的n次方 (n从低位到高位从0开始依次增加)
    123 = 16^2 + 216^1 + 316^0 == 256 + 32 + 3 = 291
  • 程序中的表示方式:十六进制数前加 0x或者0X
   0x9afdab
   0x8AabF1
  • 注意:十进制数能做的事情其他的进制数都可以做
print(291 + 1)
print(0x123 + 1)

05 不同进制之间的相互转换

1. 其他进制转十进制

手动转换: 每一位上的数乘以位权再求和

"""
0b1011 ->  2^0 + 2^1 + 2^3 = 1 + 2 + 8 = 11
0o12  ->  2*8^0 + 1*8^1 = 10
0xaf -> 15*16^0 + 10*16^1 = 175
"""

使用代码:直接用print函数打印

print(0b1011)     # 11
print(0o12)       # 10
print(0xaf)       # 175

2. 十进制转其他进制

手动转换:辗转取余法

"""
100 -> 0b1100100
100 -> 0o144
100 -> 0x64
"""

print(0b1100100, 0o144, 0x64)  # 100

3.八进制、十六进制与二进制之间的相互转换:

"""
八进制转二进制: 将1位8进制数转换成3位的二进制
十六进制转二进制: 将1位16进制数转换成4位的二进制
0o67 -> 0b110 111
0o624 -> 0b110 010 100
0xaf  -> 0b1010 1111
0xf21 -> 0b1111 0010 0001
0xa8e4 -> 0b1010 1000 1110 0100
二进制转八进制:将3位的2进制数转换成1位的8进制
二进制转十六进制:将4位的2进制数转换成1位的16进制
0b011 010 111 011  -> 0o3273
0b0110 1011 1011 -> 0x6bb
"""

4. 代码转换

  • bin(数字) -> 将其他数字转换成二进制
  • oct(数字) -> 将其他数字转换成八进制
  • hex(数字) -> 将其他数字转换成16进制
print(bin(0o67))
print(hex(100))

06 原码反码和补码

计算机存储数据的时候存的是数字的补码
内存大小:

"""
位(bit)
字节(byte): 1字节 == 8位
1kb = 1024字节
1Mb = 1024kb
1G = 1024Mb
1T = 1024G

程序员编程能操作的内存的最小单位是字节:malloc(字节)
"""

正数的原码、反码和补码一样

1. 原码

原码 = 符号位+真值
符号位:最高位表示符号位(0表示正,1表示负)
真值:数字的绝对值的二进制

    10的原码:00001010
    -256的原码:10000001 00000000
    56的原码:00111000
    print(0b10101011)

2.负数的反码 - 原码符号位不变其余位取反

 -10的反码:11110101
 -3的反码:10000011(原) -> 11111100(反)
 -2的反码:10000010(原) -> 11111101(反)

3.负数的补码 - 反码加1

计算机在存储和操作数据的时候使用的是原码,查看结果的时候用原码

-2的补码:11111110
-3的补码:11111101
"""
计算机在对负数进行加法运算的时候结果不对,需要通过补码进行运算(计算机没有减法器只有加法器)
3 - 2 = 1
00000011(原) + 10000010(原) = 10000101(原码) -> -5(错)
00000011(补) + 11111110(补) = 000000001(补) -> 000000001(原) -> 1(对)
"""
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。