变量和运算符

一、变量

  1. 程序中使用数据的两种方式

    1)直接使用数据

    print(18) # 18
    print((5+3)/2) # 4
    

    2)先将数据保存到变量中,然后在通过使用变量来使用数据

    age = 22
    print(age) # 22 
    
    score1 = 10
    score2 = 8
    print((score1+score2)/2) # 9
    
    msg = '成长在路上'
    print(msg) # 成长在路上
    print('--------------------------------------------')
    
  2. 定义变量/创建变量 - 将数据保存到变量中

    变量的作用:保存数据

    1)语法:变量名 = 数据

    2)说明:
    a. 变量名 - 自己命名

    要求:是标识符,且不是关键字;
    规范:1)见名知义
    2)不使用系统函数名(eg.print、input、type、…)、类名(int、float、str、…)和模块名]
    3)所有字母都小写,多个单词之间用下划线隔开(eg.dog_name = ‘大黄’、驼峰式命名:dogName = ‘大黄’)
    b. = - 固定写法
    c. 数据 - 需要保存到变量中的具体的数据(可以是具体的某种类型的数据,也可以是某个运算表达式)

    result = 805+1005
    print(result)
    print('-------------------------------------------------')
    
  3. 使用变量 - 使用变量中保存的数据

    含义:使用变量就是使用变量中保存的数据,所以数据能做的事情,保存数据的变量都可以做

    注意:变量必须先定义再使用

    num = 1005
    
    print(1005)
    print(num)
    
    print(1005+805)
    print(num + 805)
    
    print(type(100))
    print(type(num))
    
    print(float(1005))
    print(float(num))
    
    # x = 1005
    x = num
    print(x)
    
    str1 = '姓名:'
    # name = input('姓名:')
    #name = input(str1)
    
  4. 同时定义多个变量

    1)变量名1 = 变量名2 = … =数据 - 同时定义多个变量赋相同的值

    a = b = c = 1005
    print(a, b, c)
    

    2)变量名1, 变量名2,… = 数据1, 数据2, … - 同时定义多个变量赋不同的值

    要求:变量的数据必须和数据的数量保存一致

    x, y = 1005, 805
    print(x, y)
    
    # eg.交换两个变量的值
    m = 1005
    n = 805
    print("交换之前:", m, n)
    m, n = n, m
    print("交换之后:", m,n)
    # p = m
    # m = n
    # n = p
    # print("交换之后:", m, n)
    
  5. 变量重新赋值

    1)定义完变量以后可以重新给变量赋值,重新赋值后再使用变量,使用的是新的值

    score = 805
    print(score)
    

    2)重新赋值的时候,可以赋不同类型的值

    score = '优秀'
    print(score)
    
  6. 变量的底层逻辑

    # python变量存储数据和重新赋值的底层
    # python定义变量时,先申请内存,数据需要多大就申请多大内存,申请完内存就将变量存放在内存中,然后将变量和对应的内存相关联
    # 重新给变量赋值的时候,会根据新的值重新申请内存
    # 优点:不需要考虑内存的浪费和溢出,且二次赋值的时候可以赋值成不同类型的值
    # 缺点:在申请内存之前需要先计算数据的大小,比较慢
    # id函数 - 获取变量对应的内存地址
    a = 10
    print(id(a))
    
    a = 100
    print(id(a))
    

二、数学运算符

数学运算符:+、-、*、/、%、//(整除)、**(幂运算)

  1. +、-、*、/

    print(10+20)
    print(10-20)
    print(10*20)
    print(10/20)
    # 如果运算对象中有浮点数,那么结果一定为浮点数,应用于所有的数学运算符
    print(10.0+20)  #30.0
    print(10.0-20)
    print(10.0*20)
    # 除法(/)特殊,不论整除与否,其运算结果一定为浮点数
    print(20/10) #2.0
    
  2. %(取余、取模) - 求余数

    # x % y - 求x除以y的余数
    print(10 % 3)
    # 1)应用场景1:判断整除关系--判断一个数是否能被另一个数整除 - 判断两个数的余数是否为0
    num1 = 23
    num2 = 11
    print(num1 % num2)
    print(55 % 11)
    
    # # 判断奇偶数
    # num = int(input("请输入一个数:"))
    # if num%2 == 0:
    #     print("您输入的数为偶数:%f", num)
    # else:
    #     print("您输入的数为奇数:", num)
    
    # 2)应用场景2:取整数的低位数 - 对10的N次方取余,就可以获得这个数的后N位数
    num = 1234
    print(num % 10)  # 4
    print(num % 100)  # 34
    print(num % 1000)  # 234
    
    # 判断水仙花数
    #num = int(input("请输入一个三位数:"))
    #print(a, b, c)
    for i in range(100,1000):
        a = i % 10  # 个位
        b = i % 100 // 10  # 十位
        c = i // 100  # 百位
        if (a**3+b**3+c**3) == i:
            print("水仙花数:", i)
    
    
  3. //(整除) - 求商,商向小取整

    # x // y - 求x除以y的商,商向小取整的结果
    print(5 // 2)
    print(3.8 // 2)  # 1.0
    print(-5 // 2)  # -3
    
    # 应用场景1:求一个数中有多少个完整的另一个数
    # eg.求num中有多少个8
    num = 79
    print(num // 8) # 9
    
    # 练习:已知t的值是总的秒数,求t中有多少个完整的小时
    t = 282929
    print(t // 3600)  #78
    
    # 应用场景2:去掉整数的低位数,保留高位数 - 整除10或10的N次方
    print(8239 // 100) # 82
    print(82 // 10) # 8
    
    # 练习:提取任意一个整数的百位数
    num = 2833
    print(num % 1000 // 100)
    
  4. **(幂运算)

    # x ** y -求x的y次方
    print(3**4) # 81
    print(4 ** -2)  # 0.0625
    print(8 ** (1/3))  #2.0
    print(100 ** 0.5)  #10.0
    

三、比较运算符

比较运算符:>、<、==、!=、>=、<=

  1. 所有比较运算符的运算结果都是布尔值

    print(100 > 200)
    print(100 == 100)
    # # 判断奇偶数
    # num = int(input("请输入一个数:"))
    # if num%2 == 0:
    #     print("您输入的数为偶数:%f", num)
    # else:
    #     print("您输入的数为奇数:", num)
    
  2. python中的比较运算符支持连写表示范围

    score = 89
    # 判断分数是否大于等于70,小于90if 90 >= score >= 70:
    print("是中等成绩:", 70 <= score < 90)
    

四、逻辑运算符

逻辑运算符:and 、 or 、 not

  1. and(逻辑与运算)

    """
    1)应用场景:用于连接要求同时成立的两个条件,相当于“并且”
    2)运算规则:条件1 and 条件2 - 如果两个条件同时成立结果就是true,有一个条件不成了,结果是false
    
    """
    # 案例:判断num是否能同时被3和8整除
    num = 78
    print('num能否同时被3和8整除',num % 3 == 0 and num % 8 == 0)
    # if num % 3 == 0 and num % 8 == 0:
    #     print('num能被3和8整除')
    # else:
    #     print('num不能被3和8整除')
    
    # 练习:判断num是否是能够被7整除的偶数
    num = 92
    print('num是否是能够被7整除的偶数',num % 2 == 0 and num % 7 == 0)
    # print('{}是否是能够被7整除的偶数'.format(num),num % 2 == 0 and num % 7 == 0)
    
  2. or(逻辑或运算)

    """
    1)应用场景:如果要求两个或多个条件有一个条件成立就行,用or连接,相当于“或者”
    2)运算规则:条件1 or 条件2 - 只要有一个条件成立,结果就是true,两个条件都不成立,结果就是false
    
    """
    # 练习1:判断num是否能够被3和7整除
    num = 1005
    print("{}是否能够被3和7整除:".format(num),num % 3 == 0 or num % 7 == 0 )
    # 练习2:判断是否是闰年
    # 闰年
    # 普通闰年:能被4整除且不能被100整除
    # 世纪闰年:能被4整除且能被100整除
    year = 2023
    print("{}是否是闰年:".format(year), (year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
    
  3. not(逻辑非运算)

    """
    1)应用场景:对条件进行否定
    2)运算规则:not 条件 -对指定条件进行否定
    """
    # 判断age是否不大于18
    age = 28
    print(not age > 18)
    print(age <= 18)
    
    # 判断num是否不能被5整除
    num = 89
    print(not num % 5 == 0)
    print(num % 5 != 0)
    
    # 判断num是否不能同时被3和7整除
    num = 90
    print(not (num % 3 == 0 and num % 7 == 0))
    

五、赋值运算符

赋值运算符: =、+=、-=、*=、/=、%=、//=、**=

注意:

​ a.所有赋值运算符最终的功能都是完成对变量的赋值操作(将数据保存到变量中)

​ b.所有的赋值运算都没有结果,无法提供数据

print(b = 20) #报错,原因是赋值运算没有结果,无法提供数据
  1. = – 普通赋值运算符 [变量名 = 数据 - 将数据直接保存到变量中]

  2. +=、-=、*=、/=、%=、//=、**=

    含义:取出变量中保存的数据,与后面的数据进行运算,将所得结果重新保存到变量中

    要求:复合的赋值运算符前面的变量必须是已经赋值过的变量

    num = 19
    num += 2
    print(num)
    num -= 3
    print(num)
    num %= 3
    print(num)
    
    num = 13
    num /= 10
    print(num) # 1.3
    num //= 3
    print(num) # 0.0
    
    num = 5
    num *= 5
    print(num) # 25
    num **= 5
    print(num) # 9765625
    

六、运算符的优先级

  1. 数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)
  2. (幂运算)** > (乘除运算)*、/、%、// > (加减) +、-
  3. and > or
  4. 有括号()先算括号里面的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值