Python第二天--运算符、数据类型转换、分支结构

一、运算符

(一)数学运算符

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

        1.+、-、*、/

# +(加)、-(减)、*(乘)、/(除)
print(2 + 3)
print(2 - 3)
print(2 * 3)
print(2 / 3)

        2.整除:向小取整,任何除法运算得到的结果均为整数(int)

# 整除:向小取整,任何除法运算得到的结果均为整数(int)
print(2 // 3)

        3.% : 取余

# % - 取余
print(5 % 2)
print(2 % 3)

        4.**: 幂运算(涉及到开方结果均为浮点型)

# ** - 幂运算涉及到开方结果均为浮点型
print(2 ** 2)
print(4 ** 0.5)
print(4 ** -0.5)

(二)逻辑运算符

        and(逻辑与运算)、or(逻辑或运算)、not(逻辑非运算) --> 结果均为布尔值

        1.and

          条件1 and 条件2,条件1和条件2都成立时,整体条件成立。反之,条件不成立。

          中断: and左边条件不成立时,and右边条件无需再判断。

# and:条件1 and 条件2,条件1和条件2都成立时,整体条件成立。反之,条件不成立。
# 中断:and左边条件不成立时,and右边条件无需再判断。
print(True and True)
print(False and True)
print(False and False)

        2.or        

         条件1 or 条件2,条件1和条件2至少有一个成立,整体成立。都不成立时,整体才不成立。

         中断:or左边条件成立时,or右边条件无需再判断。

# or:条件1 or 条件2,条件1和条件2至少有一个成立,整体成立。都不成立时,整体才不成立。
# 中断:or左边条件成立时,or右边条件无需再判断。
print(True or True)
print(False or True)
print(False or False)

        3.not 

           取反,反义词

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

(三) 比较运算符

        >、 <、  ==(等等于)、 !=(不等于)、  >=、  <=

       1. 注意:

        1)Python中比较大小是同类型数据之间比较大小。
        2)比较大小得到的结果是布尔值。
# >、 <、  ==(等等于)、 !=(不等于)、  >=、  <=
# Python中比较大小是同类型数据之间比较大小。
# 比较大小得到的结果是布尔值。
print(3 > 4)

        2. 问题:为什么Python能够比较大小?

                python使用的编码值叫万国码:unicode,其是ASCLL编码的拓展

                0-9对应的十进制编码值:48-57

                A-Z对应的十进制编码值:65-90

                a-z对应的十进制编码值:97-122

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

        3.>=、<=

# >=、<=
print(2 >= 2)

 (四)赋值运算符

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

        1.简单的赋值运算符

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

        2.复合赋值运算符,先算等号右边再赋值

# 复合赋值运算符  先算等号右边再赋值
a *= a + 3   # a = a * (a + 3)
print(a)

        3.运算符优先级

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

二、简单的数据类型转换

(一) 布尔值转换(bool( ))

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

        1.0转换为False,非0全是True

        2.所有的空值对象全为False

print(bool(0), bool(1), bool(-1))
print(bool(''), bool([]),bool({}),bool(None))

(二)数字转换

        1.整型(int())

        1)布尔值可以转换成整型:False---0,True---1
        2)浮点型转整型:向小取整
        3)去掉引号是一个整数的字符串可以转整型
# 1.整型(int())
# int()
# a.布尔值可以转换成整型:False---0,True---1
# b.浮点型转整型:向小取整
# c.去掉引号是一个整数的字符串可以转整型
print(int(bool(100)))
print(int(0.1))   # 0
print(int(.1))    # 0
print(int(1.))    # 1
# print(int('1.0'))  invalid literal for int() with base 10: '1.0'
print(int('1'))

        2.浮点型(float)

        1)整型转浮点型。
        2)去掉引号是数字的字符串可以转成浮点型。
        3)布尔值可以转浮点型:False---0.0,True---1.0
# 2.浮点型(float)
# float()
# a.整型转浮点型。
# b.去掉引号是数字的字符串可以转成浮点型。
# c.布尔值可以转浮点型:False---0.0,True---1.0
print(float(1))
print(float('.9'))
print(float('9.'))
print(float('9.9'))

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

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

三、分支结构

        分支结构关键词:if、else、elif

(一)单分支结构:if、else

        单分支结构:if、else
        
        单分支结构语法:
         if 条件:
            代码段1
         else:
            代码段2
# 单分支结构:if、else
# 案例:账号密码登录
username = input('请输入用户名:')
password = input('请输入密码:')
if username == 'admin' and password == '123456':
    print('登陆成功!')
else:
    print('登录失败!')
# 练习:判断一个年份是否为闰年?
year = int(input('请输入一个年份: '))
# print(type(year))

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

(二·)多分支结构

        多分支结构语法:
        if 条件1:
            代码段1
        elif 条件2:
            代码段2
        ......
        else:
            代码段N
# 多分支结构
# if、elif、else、
if year % 4 == 0 and year % 100 != 0:
    print(f'{year}年为闰年')
elif year % 400 == 0:
    print(f'{year}年为闰年')
else:
    print(f'{year}年为平年')

(三)嵌套分支结构

        嵌套分支语法:
        if 条件1:
            代码段
            if 条件:
                ...
        else:
            代码段
# 嵌套分支
# 判断一个数字是否是偶数,如果是偶数,再判断其是否是3的倍数。
# 随机模块:random
from random import randint
# randint(a,b)    a

(四)分支结构练习

# 练习1:输入三条边长,如果能构成三角形就计算周长和面积。
a = float(input('输入第一条边长: '))
b = float(input('输入第二条边长: '))
c = float(input('输入第三条边长: '))
# 要三个条件,也可以用两边之差小于第三边。
if a + b > c and a + c > b and b + c > a:
    # pass: 保持结构完整性,不参与程序执行
    # pass
    print('这三条边构成一个三角形')

    # 周长
    C = a + b + c

    # 面积:海伦公式---通用公式
    # (三角形周长的一半 * (三角形周长的一半 - a)* ...)**0.5
    p = (a + b + c) / 2
    S = (p * (p - a) * (p - b) * (p - c)) ** 0.5
    print(f'三角形的周长为{round(C,2)},面积为{round(S,2)}')
else:
    print('这三条边不构成一个三角形')

# 练习2:百分制成绩转换为等级制成绩。
# 要求:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;
# 70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。
grade = float(input('输入成绩: '))
if grade >= 90:
    print('A')
# 不用写后面的条件>90这个条件是多余的
elif grade >= 80:
    print('B')
elif grade >= 70:
    print('C')
elif grade >= 60:
    print('D')
else:
    print('E')

# 练习3:英制单位英寸和公制单位厘米互换。
# 注意:厘米=英寸*2.54     用if.
# cun = float(input('输入一个英寸: '))
# cm = cun / 2.54
# print(f'{cun}英寸转换为{round(cm, 2)}厘米')

num = float(input('请输入一个数值: '))
unit = input("请输入一个单位: ")
if unit == 'cm' or unit == '厘米':
    print(f'{num}{unit} = {num * 2.54}in')
else:
    print(f'{num}{unit} = {num / 2.54}cm')

四、三目运算符

变量 = '结果1' if 条件 else '结果2'
条件成立,结果为结果1,反之为结果2
# 三目运算符
# 判断一个人是否成年
age = 17
if age < 18:
    print('未成年')
else:
    print('成年')
# 三目运算符写法:
result = '成年' if age >= 18 else '未成年'
print(result)

你可能感兴趣的:(前期python,python,开发语言)