Day2-变量和运算符学习总结

  1. 变量和运算符

    变量

    1.认识变量和定义变量

    1)什么是变量?

    变量是用来保存数据的,使在程序中使用数据的时候更方便

    2)定义变量(创建变量)

    作用:将数据保存到变量中

    语法:使用赋值符号=

     	变量名 = 数据
    

    说明:

    a.变量名

    要求:是标识符不是关键字,否则报错

    规范:

    • 见名知其意;

    • 不使用函数名、类名、模块名,容易使原功能、意义失效;

    • 全部小写,多个单词之间用下划线隔开(也可用驼峰命名法:首字母小写,后续单词首字母大写)

    b.在python中单个等号(=)是赋值符号

    c.数据:各种数据类型,或者是任意有结果的表达式

    3)使用变量

    使用变量中保存的数据

    4)重新给变量赋值
    a=100
    
    a=300
    
    b=2
    
    a=b
    
    5)同时定义多个变量
    1. 同时定义多个变量赋相同的值:变量1=变量2=变量3=…=数据

    2. 同时定义多个变量赋不用的值:变量1,变量2…=数据1,数据2…

      特殊应用:

      交换2个变量的值

      1.引入中间变量交换

      a,b=100,200
      c=a
      a=b
      b=c
      

      优点:此方法符合生活,利于理解

      缺点:繁琐

      2.直接交换(推荐使用)

      a,b=100,200
      a,b=b,a
      

      优点:简洁

      注:交换的时候变量的内存地址不变,可用id()查看;

    4)定义变量和变量赋值的底层原理

    通过与c和java比较来进行分析

    a.定义变量

    python自动计算数据大小,然后开辟内存空间并创建;

    java和c根据变量定义的类型进行创建;

    二者比较:

    python创建方便,空间浪费少,但是需要计算所以效率低;

    java和c创建的快,但有溢出和浪费的问题;

    问题:为什么python定义变量不需要写类型

    答:python定义变量申请内存时,自动根据数据大小开辟空间创建,不看类型

    b.变量重新赋值

    python重新赋值的时候会重新创建,然后调整指针,指向新地址,后续释放原内存;

    java创建的时候是直接修改原内存;

    问题1:重新赋值的时候为什么可以赋不同类型的值

    答:重新赋值会重新申请新的内存

    问题2:为什么python可以直接计算 9999*9999

    答:申请内存的时候会先提前计算需要的大小

    运算符

    数学运算符类型:

    +(加),-(减),*(乘),/(除),%(取余、取模),//(整除),**(幂运算)

    1. +(加),-(减),*(乘),/(除)

       与数学中的计算一样
      

      注:+、-、*操作,运算对象是什么结果就是什么
      / (除法)的结果一定是float

      print(1+2)
      3
      print(2-1)
      1
      print(3*4)
      12
      print(4/2)
      2.0
      print(5/2)
      2.5
      
    2. %(取余)求余数

      x%y 求x除以y的余数

      print(10%3)
      1
      print(-10%3)
      2
      

      应用场景:取低位数

    3. //(整除)

      x//y 求x除以y的商,商向小取整

      print(10//4)
      2
      print(-10//4)
      -3
      

      应用场景1:(在知道两个数能整除的情况下)获取整型的商

      应用场景2:整数去掉低位数,保留高位数 - 对10或者10的N次幂进行整除操作

      练习:取十位数

      方法1:先取余再整除(当成高位取)

    方法2:先整除再取余(当成低位取)

    num=120
    print((num%100)//10)
    print(num//10%10)
    
    1. **(幂运算)

      与数学中计算方法的一样

      示例:x**y 求x的y次方

      print(10**10)
      10000000000
      print(2**-2) # 1/(2*2)
      0.25
      print(4**0.5) # 开方
      2.0
      

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

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

      应用1:判断num能否被4整除

      num = 23
      print(num % 4 == 0)     # False
      

      应用2:判断num是否是浮点数

      num = 23
      print(num % 4 == 0)     # False
      

      应用3:判断指定的年龄是否成年

      age = 3
      print('是否成年:', age >= 18)
      
    2. python的比较运算符支持连写表示

      例如:判断num是在0到1的范围内

      num = 0.3
      print(0 <= num <= 1)
      # print(num >= 0 and num <= 1)
      

    逻辑运算符:and(与)、or(或)、not(非)

    1. and 逻辑与运算

    应用场景:用于连接要求同时满足的多个条件,相当于生活中的并且

    规则:条件1 and 条件2 两个条件都是True,结果为True,一个False结果就是False

     		True and True	-->	True
    
     		True and False	-->	False
    
    1. or 逻辑或运算

    应用场景:如果两个或者多个条件中主要有一个满足就行,相当于或者

    规则:条件1 and 条件2 一真为真,两否为否

     		True or True	-->	True
    
     		True or False	-->	True
    
     		False or False	-->	False	
    

    例如:

    判断闰年(普通闰年 - 能被4整除但是不能被100整除的年;世纪闰年 - 能被400整除的年)

    year = 400
    print('是否是闰年:', (year % 4 == 0 and year % 100 !=0) or (year % 400 == 0) )
    # print 是否是闰年: True
    
    1. not 逻辑非运算

      应用场景:如果一个条件正向写情况很多很复杂,反向写却很简单,就讲条件反写,再加not

      运算规则:not 条件 - 对指定条件进行否定

        			not True	->	False
      
        			not False	->	True
      

      示例:判断num是否不能同时被3和7整除

      方法1:正向写条件

      不能同时被3和7整除: 能被3整除但是不能被7整除、能被7整除但是不能被3整除、既不能被3整除也不能被7整除
      1)能被3整除但是不能被7整除:

      num % 3 == 0 and num % 7 != 0
      2)能被7整除但是不能被3整除:

      num % 3 != 0 and num % 7 == 0
      3)既不能被3整除也不能被7整除:

      num % 3 != 0 and num % 7 != 0

      print((num % 3 == 0 and num % 7 != 0) or (num % 3 != 0 and num % 7 == 0) or (num % 3 != 0 and num % 7 != 0))
      

      方法2:反向写条件

      反向写条件: num能同时被3和7整除

      print(not num % 21 == 0)
      

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

    注意1:所有的赋值运算符的作用都是将某个数据保存到某个变量中

    注意2:所有的赋值运算都没有没结果

    1. =

    变量 = 数据 - 将右边的数据保存到左边的变量中

    例如:a=10

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

      变量 += 数据 - 将变量中保存的数据和+=后面的数据进行加法运算,然后将运算结果再赋值给变量

      注意:这儿的变量必须是已经赋值过的变量

      例如:

      c = 10
      c += 2       # 相当于: c = c + 2  -> c = 10 + 2  -> c = 12
      print(c)     # 12
      

    运算符优先级

    原则:

    数学运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符(最低)

    数学运算符:** > *、/、%、//、 > +、-

    有括号先算括号

    课后作业

    day2 Python编程⼊入⻔门作业

    选择题

    1. 下列哪个语句在Python中是非法的?(B)
      A. x = y = z = 1
      B. x = (y = z + 1)
      C. x, y = y, x
      D. x = y
    2. 关于Python变量,下列列说法错误的是 (C)
      A. 变量无须指定类型
      B. 变量可以重新赋值
      C. 变量⽆须先创建和赋值⽽直接使⽤
      D. 同一个变量可以保存不同类型的值
    3. 下⾯哪个不是Python合法的标识符(B)
      A. int64
      B. 40XL
      C. self
      D. stu_name
    4. 下列关于Python语⾔说法错误的是(C)
      A. Python是解释型语言
      B. Python是⾯向对象语⾔
      C. Python2.x和Python3.x是完全兼容的
      D. 普通的⽂本编辑器也可以写Python程序
    5. 下列关于print函数用法错误的是(D)
      A. print(100)
      B. print(100, 200)
      C. print(100, ‘hello world!’)
      D. print(10 20)

    填空题

    1. Python中单行注释的符号是(#), 多⾏注释的符号是(三个单引号或双引号)。
    2. 语句a, b=10,20执⾏后,a的值是(10);语句a, a = 10, 20 执⾏后,a的值是(20)。
    3. Python程序文件扩展名是(py)。
    4. 在Python中,int表示的数据类型是(整型)。
    5. 在Python中,字符串数据需要⽤(单引号)或(双引号)包裹。
    6. 在Python中,布尔类型有(2)个值,分别是(True和False)。
    7. 如果想要查看⼀个数据或者变量的数据类型,可以用(type)函数。

    编程题

    1. 写程序提示⽤户输入⽤户名和密码,并且将输⼊的内容保存到不同的变量中。

      name = input('请输入姓名:')
      password = input('请输入密码:')
      
    2. 使⽤一个print输出3个数据,3个数据在⼀行显示,并且用等号(=)隔开。

      print(123,"ok",False,sep='=')
      

    简答题

    1. 声明变量的时候, 变量名的注意事项有哪些?
      是标识符且不能是关键字;
    2. 请写出Python语言有哪些优点。
      语法简洁(变量定义简单),兼容性强(能调用其他语言代码),应用面广(可以使用各种库处理不同行业的问题)
    3. 请写出Python常⻅的应用领域。
      爬虫、数据分析、人工智能、图片识别

    day3 数据类型和运算符作业

    选择题

    1. print(100 - 25 * 3 % 4) 应该输出什么? (B)

      A. 1

      B. 97

      C. 25

      D. 0

    2. Python不支持的数据类型有(A)。

      A. char

      B. int

      C. float

      D. list

    3. (多选)n = 6784,以下能够获取到7 的方法有(C,D)。

      A. n / 1000 % 100

      B. n % 1000 / 100

      C. n // 100 % 10

      D. n // 10 % 100 // 10

    4. 运行以下程序,当从键盘上输入12,运行结果是(A)。

      x = (input())
      print(type(x))
      

      A. <class 'str'>

      B. <class 'int'>

      C. 出错

      D. class 'dict'

    5. 下列表达式的运算结果是( D ) 。

      a = 100
      b = False
      print(a * b > -1)
      

      A. False

      B. 1

      C. 0

      D.True

    填空题

    1. 在Python中表示空类型的是(None)。
    2. 查看变量中数据的类型的函数名是(type)。
    3. 已知x = 3 == 3,执行结束后,变量x的值为(True)。
    4. 已知 x = 3,那么执行语句 x += 6 之后,x的值为(9)。
    5. 表达式 3 ** 2 的值为(9),表达式 3 * 2的值为(6),表达式 4 ** 0.5 的值为(2.0)。

    编程题

    1. 写出判断一个数是否能同时被3和7整除的条件语句, 并且打印对应的结果。

       x = eval(input('please input a int num:'))
       if x % 3 ==0 and x % 7 == 0:
           print('({})能同时被3和7整除'.format(x))
           print(True)
       else:
           print('({})不能同时被3和7整除'.format(x))
           print(False)
      
    2. 写出判断一个数是否能够被3或者7整除,但是不能同时被3和7整除的条件语句, 并且打印对应的结果。

      例如:输入 14 打印 True, 输入 4 打印 False, 输入 21 打印 False。
      x = int(input('请输入一个整数:'))
      print('是否能被3或者7整除,但有不能同时被3和7整除:',(x % 3 ==0 or x % 7 ==0 ) and not x % 21 == 0)
      
    3. 输入年,写代码判断输入的年是否是闰年,并且打印对应的结果 。(是闰年的条件: 能被4整除但是不能被100整除或者能够被400整除的年)

      例如:输入 2020 打印 True, 输入 2011 打印 False
      year = 2020
      print('是否是闰年:', (year % 4 == 0 and year % 100 !=0) or (year % 400 == 0) )
      
    4. 假设今天的上课时间为15678秒,编程计算今天上课时间是多少小时,多少分钟,多少秒;以‘XX时XX分XX秒’的方式表示出来。

      例如: 时间 67 秒  —> 017 秒
       time = 15678
       hour = time//3600
       min = time%3600//60
       sec = time % 3600 % 60
       print(f'{time}秒 -> {hour}{min}{sec}秒')
       print(hour*3600+min*60+sec)
      
    5. 定义两个变量保存一个人的身高和体重,编程实现判断这个人的身材是否正常!

      公式: 体重(kg)/身高(m)的平方值 在18.5 ~ 24.9之间属于正常。

      例如: 输入体重: 55, 输入身高:1.55, 输出: True
      height = 1.55
      weight = 55
      print('身材是否标准:', 18.5 <= weight / (height ** 2) <= 24.9)
      

    简答题

    1. Python内置数据类型有哪些?
      1.int;2.float;3.bool;4.None
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值