day02学习 Python运算符、简单数据类型转换、分支结构

本文详细介绍了Python中的各种运算符,包括数学运算符、赋值运算符、比较运算符、逻辑运算符和位运算符。重点讲解了闰年的判断逻辑,并通过实例展示了条件判断在编程中的应用。此外,还探讨了数字转换、分支结构以及运算符优先级等基础知识,对于理解Python编程非常有帮助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python运算符

数学运算符、赋值运算符、比较运算符、逻辑运算符、位运算符…

数学运算符

数学运算符名称
+
-
*
/
%取余、取模
//整除
**幂运算
  • +-*中,如果运算对象全部是整数,运算结果为整型;如果运算类型有浮点数,则输出结果位浮点型

  • /,不管运算对象是什么类型,运算结果类型均为浮点数

    print(5 / 2, 6 / 2) # 2.5 3.0
    
  • // - 整除:向小取整,任何除法运算得到的结果均为整数(int

    print(2 // 3)		# 0
    
  • % - 取余

    print(5 % 2)		# 1
    print(2 % 3)		# 2
    
  • ** - 幂运算:涉及到开方结果均为浮点型(float

    print(2 ** 2)		# 4
    print(4 ** 0.5)		# 2.0
    print(4 ** 2.5)		# 32.0
    print(4 ** -0.5)	# 0.5
    

逻辑运算符

逻辑运算符名称
and逻辑与运算
or逻辑或运算
not逻辑非运算

逻辑运算结果均为布尔值

  • and - 条件1 and 条件2,条件1和条件2都成立时,整体条件成立。反之,条件不成立。
    中断:and左边条件不成立时,and右边条件无需再判断。

    print(True and True)		# True
    print(True and False)       # False
    print(False and False)		# False
    

    tips: 复制快捷键 ctrl + d 直接复制到下一行 无需选择整体 只需选中需要复制的那一行的任意位置

  • or - 条件1 or 条件2,条件1和条件2至少有一个成立,整体成立。都不成立时,整体才不成立。
    中断:or左边条件成立时,or右边条件无需再判断。

    print(True or True)		# True
    print(False or True)	# True
    print(False or False)	# False
    
  • not - 取反,反义词

    print(not True)
    

练习

判断闰年:
1. 能被4整除但是不能被100整除。
2. 能被400整除。
地球公转:3655小时40+分钟。
# 练习:判断一个年份是否时闰年(0=False,非0均为True)
# bool() - 能够将数据转为布尔值
year = 2004
print((not year % 4 and year % 100) or not year % 400)
print(bool(not year % 4 and year % 100) or not year % 400)

比较运算符

比较运算符名称
>大于
<小于
==等于
!=不等于
>=大于等于
<=小于等于
  • Python中比较大小是同类型数据之间比较大小。

  • 比较大小得到的结果是布尔值。(逻辑运算也是)

  • 数字比较大小

    print(3 > 4)   # False
    

问题:为什么python能够比较大小?

Python使用的编码值叫万国码:unicode,其是ASCII编码的拓展。

数字0-9对应的十进制编码值:48-57
print('A' < 'a')        # True 
A-Z对应的十进制编码值:65-90;a-z对应的编码值:97-122

编码值是计算机比较大小的唯一标准

  • ==!=

    print(0 != 1)       # True
    print(0 == 1)       # False
    
  • >=<=

    print(2 >= 2)       # True
    

练习:判断年份是否是闰年

year = 1900
result = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
print(result)

赋值运算符

=+=-=*=/=//=%=**=

先算等号右边,再给等号左边赋值

变量 += 数据 - 将变量中保存的数据取出来和后面的数据进行加法运算,最后将运算结果保存到前面的变量中

变量需先赋值

a = 10
a += 5      # a = a + 5
a **= 2     # a = a ** 2
print(a)
a %= 2      # a = a % 2
print(a)

复合赋值运算符

a *= a + 3  # a = a * (a + 3)
print(a)

运算符优先级

  1. 先算小括号整体。
  2. 算数运算符: ** > */%// > +-
  3. 算数运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

练习:华氏度和摄氏度的转换 C(摄氏度) = (F - 32)/1.8

F = 68
C = (F - 32)/1.8
print('华氏度{}=摄氏度{}'.format(F, C))
print(f'华氏度{F}=摄氏度{C}')		# 华氏度68=摄氏度20.0
C = round((F - 32) / 1.8, 1)    # round(参数1,参数2) --> 参数1等于数值,参数2需要保留的小数位数。

保留小数位数函数:round(参数1,参数2) —> 参数1等于数值,参数2需要保留的小数位数。

练习:根据指定的圆的半径,计算圆的周长和面积

r = 4
pi = 3.14
C = 2 * pi * r
S = pi * r ** 2
print(f'半径为{r}的圆的周长为{C},面积为{S}')		# 半径为4的圆的周长为25.12,面积为50.24

三目运算符

案例:判断一个人是否成年

age = 17
if age < 18:
    print('未成年')
else:
    print('成年')

result = '成年' if age >= 18 else '未成年'
print(result)

三目运算符语法:

变量 = '结果1' if '条件' else '结果2'

条件成立,结果为结果1,反之为结果2

简单数据类型转换

  • 布尔值转换。

    所有的数据都可以转换为布尔值(bool)

    bool()

    print(bool(0), bool(1), bool(-1))  # False True True
    
    • 0转换为Flase,非0全是True

      print(bool(''), bool([]), bool({}), bool(None))     # False False False False
      
    • 所有的空值对象全是False

  • 数字转换

    • 整型(int)

      int()

      • 布尔值可以转换成整型: False --> 0,True --> 1

        print(int(bool(100)))       # 1
        
      • 浮点型转整型:向小取整

        print(int(0.1))     # 0
        print(int(.1))      # 0
        print(int(1.))      # 1
        
      • 去掉引号是一个==整数==的字符串可以转整型

        print(int('1.0'))   # ValueError: invalid literal for int() with base 10: '1.0'
        print(int('1'))     # 1
        
    • 浮点型(float)

      float()

      • 整型转浮点型。

        print(float(1))     # 1.0
        
      • 去掉引号是数字字符串可以转成浮点型

        print(float('.9'))  # 0.9
        print(float('9.'))  # 9.0
        print(float('9.9')) # 9.9
        
      • 布尔值可以转浮点型 —> False: 0.0; True:1.0

    bool()、int()、float()、str()、list()等 —> 构造器语法

    year = int(input('请输入一个年份:'))
    print(year, type(year))     # <class 'int'>
    

分支结构

from keyword import kwlist
print(kwlist)
# ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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']

分支结构关键词:ifelseelif

  • 单分支结构 ifelse

    案例:账号密码登录

    username = input('请输入用户名:')
    password = input('请输入密码:')
    if username == 'admin' and password == '123456':
        print('登陆成功')
    else:
        print('登陆失败')
    

    单分支结构语法:

    if 条件:
        代码段1
    else:
        代码段2
    

    缩进:一般把缩进看作四个空格,一个程序的缩进必须保持一致。

    先判断条件语句是否为True(如果条件语句的结果不是布尔,将结果转换成布尔值再判断),如果为True就执行代码段然后再执行后续的其他语句;否则就不执行代码段直接执行后续的其他语句。

    练习:判断一个年份是否是闰年

    year = int(input('请输入年份:'))
    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
        print(year, '是闰年', sep='')
        print(f'{year}是闰年')
    else:
        print(year, '不是闰年', sep='')
        print(f'{year}是平年')
    
  • 多分支结构

    if year % 4 == 0 and year % 100 != 0:
        print(f'{year}是闰年')
    elif year % 400 == 0:
        print(f'{year}是闰年')
    else:
        print(f'{year}是平年')
    

    多分支结构语法:

    if 条件1:
          代码段1
    elif 条件2:
          代码段2
    ....
    else:
          代码段N
    
  • 嵌套分支

    案例:判断一个数字是否是偶数,如果是偶数,再判断是否是3的倍数。

    随机模块:random

    from random import randint

    randint(a, b) - a < b, randint能够生产[a, b] (闭区间)范围的随机整数

    num = randint(0, 100)
    print(num)
    if num % 2 == 0:
        print('偶数')
        if num % 3 == 0:
            print('是3的倍数')
    else:
        print('奇数')
    

    嵌套分支语法:

    if 条件1:
        代码段
        if 条件:
            ...
    else:
        代码段
    

练习:

  1. 输入三条边长,如果能构成三角形就计算周长和面积。

    side1 = float(input('输入三角形的一条边长:'))
    side2 = float(input('输入三角形的第二条边长:'))
    side3 = float(input('输入三角形的第三条边长:'))
    if side1 + side2 > side3 and side1 + side3 > side2 and side2 + side3 > side1:
        C = side1 + side2 + side3
        S = (C * 0.5 * (C * 0.5 - side1) * (C * 0.5 - side2) * (C * 0.5 - side3)) ** 0.5
        print(f'三边长为{side1}{side2}{side3}的三角形,周长为{C},面积为{round(S, 2)}')
    else:
        print(f'边长为{side1}{side2}{side3}不构成三角形')
    
  2. 百分制成绩转换为等级制成绩。

    要求:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。

    score = int(input('请输入成绩:'))
    if score >= 90:
        print('A')
    elif score >= 80:
        print('B')
    elif score >= 70:
        print('C')
    elif score >= 60:
        print('D')
    else:
        print('E')
    
  3. 英制单位英寸和公制单位厘米互换。

    注意:厘米=英寸/2.54

    num = float(input('请输入数字:'))
    unit = input('请输入单位:')
    if unit == 'cm':
        print(f'{num}{unit} = {num * 2.54}in')
    elif unit == 'in':
        print(f'{num}{unit} = {num / 2.54}cm')
    else:
        print('系统无法识别')
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值