02 - python基础知识

1.注释

  • 单行注释#
  • 多行注释'''

2.缩进

  • 每级缩进都是4个空格

  • 格式化快捷键:ALT + CTRL + L

3.变量

  • python是弱语言

    变量声明的时候对数据类型不是很严格

  • 格式: 变量名 = 值

  • 变量命名规范

    • 字母、数字、下划线
    • 不能数字开头
    • 不能使用关键字
    • 区分大小写
      • 类名每个首字母都大写
      • 变量名第一个首字母小写,后面的首字母大写

4.数据类型

​ 集合

  • 如何查看一个变量的数据类型

    money = 20
    print(type(money))
    

    type(变量) :返回变量类型

  • 如何判断一个变量是否是一个指定类型

    isinstance:第一个参数写变量,第二个参数写类型名称

    a = 12
    print(isinstance(a,int))   #True
    

字符串符号(单双三引号)

  • 单引号

  • 双引号

    单双引号都可以用来包裹字符串

    而且两个嵌套就可以不用转义

    print("我们称他为'白小猪'二代")
    print('妈妈说:"你是猪"')
    
  • 三引号

    保留格式输出

    poetry = '''
            静夜思
                李白
        窗前明月光,疑似地上霜
        举头望明月,低头思故乡
    '''
    print(poetry)          #输出的就是上面字符串的格式
    
    print('''
              静夜思
                李白
        窗前明月光,疑似地上霜
        举头望明月,低头思故乡
    ''')
    

数据类型的转化

  • 转化类型(变量)

    money = input('输入金额:')
    #输入 20  读取到的类型是字符串类型
    print(int(money) + 30)       #50
    print(str(12) + "和我连接叭")  
    ------------------------------------------------------
    #结果如下
    输入金额:20
    50
    12和我连接叭
    
  • 注意易错:

    • 字符串转成其他类型,必须要符合其他类型的格式

      比如:如果变量a='2.2'或者a='wosxjz' ,将字符串转化为整型就会报错,只能是'20'这种才能转整型

    • 浮点型转整型是向下取整

    • 布尔类型TRUE参与运算为1,FALSE参与运算为0

      空字符串、0转化为布尔类型为FALSE;其他只要变量有值就为TRUE

5.输入与输出

1)普通的输出

  • 多个变量之间用空格输出
print(a, b, c)    #多个变量输出用逗号隔开,输出时多个值之间用空格隔开
  • 多个变量之间用指定的字符输出
print(a, b, c, sep='#')      #输出:a#b#c
  • 输出完成后空一行
print(a, b, c, end='\n')      #表示末尾换行
  • 输出完成后不换行挨着输出
print('*',end='')
  • print参数可以直接带运算符--输出的结果为运算后的结果
print(5/2)     #2.5
print(5//2)    #2
  • 重复打印字符串
print("哈" * 10)       #将字符串打印10次,不换行打印
  • 输入:input()

    userName =  input()                 #从控制台输入
    userAge = input('请输入年龄:')      #input中的内容会先打印出来然后再在控制台输入
    print(userName + userAge)           #字符串之间可以 + 连接,但是不同数据类型不能做运算
    

    注意:input()从控制台输入,读取的数据类型是字符串类型,赋给变量


2)格式化输出

  • 输出的值需要根据变量的变化而实时变化的

  • 常用的格式符号

    格式符号 转换
    %% 输出 % 号
    %s 字符串
    %d 有符号十进制整数
    %f 浮点数
    %c 字符
    %u 无符号十进制整数
    %b 二进制整数
    %o 八进制整数
    %x 十六进制整数(小写字母0x)
    %X 十六进制整数(大写字母0X)
    %e 科学计数法(小写'e')
    %E 科学计数法(大写“E”)
    %g %f和%e 的简写
    %G %f和%E的简写

    举例:

    age = 10
    print("我今年%d岁" % age)
    
    name = "xiaohua"
    print("我的姓名是%s, 年龄是%d" % (name, age))
    
  • 保留小数点位数

    money = 60.22
    print('我的财产为%f元' % money)       #60.220000
    print('我的财产为%s元' % money)       #60.22
    print('我的财产为%.2f元' % money)     #60.22
    

3)输入

  • input:表示从控制台输入,返回值即为你输入的

    name = input('请输入你的名字:')
    
  • 同时输入多个值,以空格隔开

    m1,m2 = input('请输入两个值:').split(' ')   #输入a b
    print(m1,m2)                              #返回a b
    
  • 如果用一个变量接收多个以空格分割的输入:返回的是列表!!

    m = input('请输入两个值:').split(' ')   #输入a b
    print(m)                              #返回['a', 'b']
    

6.运算符

1)算数运算符

  • 加减乘除

    + - * /

  • 整除

    //

  • 次方

    **

  • 取模

    %

  • 例题:输入三位整数,计算各个位数

inStr = int(input('请输入一个三位数:'))  #154
gewei = inStr % 10
shiwei = inStr // 10 % 10
baiwei = inStr // 100
print(gewei, shiwei, baiwei)

2)赋值运算符

+= //= *=等 :两个变量运算后赋值给前面的变量


3)比较运算符

> < == >= <= != is 返回的结果只有TRUE和FLASE

  • 记住python中可以连等
score = int(input('input:'))
print(80 <= score <= 100) 
  • ==和is的区别

    is和==都是对对象进行比较判断作用

    • ==是python标准操作符中的比较操作符,用来比较判断两个对象的value(值)是否相等
    • is也被叫做同一性运算符,这个运算符比较判断的是对象间的唯一身份标识,也就是是否为同一个对象(地址)是否相同。

4)逻辑运算符

and or not :运算对象为布尔类型

  • 特殊的:and 两侧都是非0数字,结果是最后的数字值(因为非0的有值的变量对应的布尔类型都为TRUE)

    a = 2
    b = 3
    print(a and b)            #结果为3
    
  • 特殊的:or两侧都是非0数字,左边是非零就返回左边的数值;左边是0、右边非零就返回右边的数值


5)位运算符

位运算 描述 示例
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 (a & b) 输出结果 12 ,二进制解释: 0000 1100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 (a | b) 输出结果 61 ,二进制解释: 0011 1101
^ 按位异或运算符:当两对应的二进位相异时,结果为1 a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 。~x 类似于 -x-1 (~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
<< 左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补0。 a << 2 输出结果 240 ,二进制解释: 1111 0000
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数 a >> 2 输出结果 15 ,二进制解释: 0000 1111
a = 0011 1100  # 60的二进制
b = 0000 1101  # 13的二进制
-------------------------------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a  = 1100 0011

a << n:a左移n位表示a扩大为原来的2n倍 a * 2n

a >> n:a右移n位表示a整除2n倍 a // 2n

7.进制转化函数

  • 各进制转二进制:bin(各进制)
  • 各进制转八进制:oct(各进制)
  • 各进制转十六进制:hex(各进制)
  • 各种进制转十进制:int(各进制)

前缀: 0x 十六进制 0o 八进制 0b 二进制

  • 前提: 一个整数四字节对应32位二进制,计算如果没涉及到高位可以把高位的省略

二进制负数转十进制

11111101 的十进制表示 (已知11111100为负数二进制)

  • 1.因为负数这个二进制为补码,所以-1得到反码 ---> 11111100
  • 2.再除符号位按位取反得到原码 ---> 10000011
  • 3.保留负号,得到-3

十进制正数取反后的十进制

~5 #对5取反

  • 1.先得到5的原码再按位取反 00001001 -> 11110110 其实这已经得到结果了,但是计算机底层print打印出来的数是十进制,所以还要将二进制负数转化为十进制

  • 2.计算机再在底层将二进制负数转化为十进制 (因为二进制的最高位为1,所以表示一个负数)

    • 1>先对11110110(补码)-1得到负数二进制的反码 ---> 11110101
    • 2>再对11110101(反码)除符号位按位取反得到负数二进制的原码 ---> 10001010
  • 所以可以得到结果

    print(~5)   #-6
    

十进制负数转二进制

-9 #求-9的二进制

  • 1.先将正九的二进制原码得出来 00001001
  • 2.将正九原码取反得到反码 ----> 11110110
  • 3.再+1得到补码----> 11110111

十进制负数取反后的十进制

~-4 #对-4取反

  • 1.先要得到-4的原码 十进制负数转二进制 --> 11111100

  • 2.再取反 00000011 --> 最高位为0,所以对应的十进制为 3

8.交叉赋值

  • python中支持交叉赋值

    a = 1
    b = 2
    a,b,c = b,a,b
    
posted @ 2021-10-13 16:55  深藏Bluee  阅读(88)  评论(0)    收藏  举报