微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python运算符和分支结构流程控制

常见运算符

算数运算符

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

a=20

b=2

print(a+b)

print(a-b)

print(a*b)

python中除法运算得到的结果永远是浮点数

print(a/b)

整除:将除法运算的结果去掉小数部分(向小取整:获取小于等于N的最大整数)

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

%:取余

print(10 % 3)

幂运算:幂运算开N次方结果永远为浮点型
sqrt():开平方,sqrt必须从math数学模块中导入,只要程序导入模块,必然会对性能产生影响

print(10 ** 2)
print(100 ** 0.5)

比较运算符

(大于)、<(小于)、>=(大于或等于)、<=(小于或等于)、==(等等于)、!=(不等于)

比较运算结果为布尔值True、False

10 == 10.0,数值相等数据类型不相等(只指代整型和浮点型),结果为True

a = 10
b = 2
print(a > b)
print(a >= b)
print(a != b)
print(10 == 10.0)
print(10 == '10')

逻辑运算符

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

and用法

条件1 and 条件2,判断两个条件是否都成立,两者都成立,结果为True,反之,结果为False;

中断操作:如果条件1为False,不需要再判断条件2,整体为False。

print(3 > 2 and 2 != 1)
print((3 > 2 and 2 != 1) and 2 == 2 and 1 == 0)
print(True and True)
print(True and False, False and True, False and False)

or用法

条件1 or 条件2,判断两个条件中是否存在成立条件,两个条件都不成立结果为False,反之为True。

中断操作:如果条件1为True,不需要再判断条件2,整体为True。

单独的数字也能作为条件,0代表False,非0代表True

print(3 > 2 or 2 != 2)
print(3 < 2 or 0)

not:取反

print(not True)结果为False

练习:判断一个年份是否是闰年。
条件:年份能够被4整除但是不能被100整除,或者年份能被400整除。
地球公转365天5小时40分钟,每过四年约等于多1天,每过400年多加3天,从第100、200、300年各减掉一天。

year = 2022

print((y%4==0 and y%100!=0 )or y%400==0) 结果为False

赋值运算符

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

作用:给一个已经存在的变量赋值

x = 100
x += 2 # 等价于x = x + 2
x *= 2
x //= 4
print(x)

成员运算符

复合运算符

x = 100
x += 2 # 等价于x = x + 2
x *= 2
x //= 4
print(x)

运算符优先级

A.算术运算符 > 比较运算符 > 逻辑运算符 > 赋值运算符

B.有小括号先算小括号的
C.** > *、/、//、% > +、-

练习:给定一个半径r,计算圆的面积和周长。

import math
print(math.pi)
r=3 或者r=float(input('输入一个半径:'))
s=round(math.pi*r**2,2)
l=round(2*math.pi*2,2)
print(s)
print(l)

round(数值,小数位数),四舍五入将数值保留指定小数位数,若数值的小数位数不够,不做修改

结果

3.141592653589793

28.271

12.57

数据类型转换

注意:所有数据类型后面添加小括号(),能够变成数据类型转换方法——构造器语法

一、整型(int):什么样的数据能够转换成整型?

print(int('123'),type(int('123')))

print(int('12.3'))   # ValueError: invalid literal for int() with base 10: '12.3'
  • 布尔值转整数型 True–>1,False–>0

    print(int(True), int(False))
    

    二、浮点型(float):什么样的数据能够转换成浮点型?

    1. 整型
    print(float(10))
    
  1. 去掉引号将一个数字的字符串转换成浮点型
print(float('1.0'))
  1. 布尔值 True–>1.0,False–>0.0
print(float(True),float(False))

三、布尔(bool):什么数据能够转换成布尔值?

所有数据都可以转换成为布尔值

0, 0.0 ,None ,’ ’ ," " ,[] ,{}(字典) ,() ,set()集合 转为False,其余数据转为True

并不是所有数据类型都可以相互转换

分支结构

能够使程序在某个节点做选择

使用到python系统关键字:if else elif

userName=input('请输入账号:')

password=input('请输入密码:')

if userName=='admin' and password =='123456':print('登录成功')

else:

​    print('账号或密码错误')

单分支结构

'''
语法:
if 条件:
	代码块
else:
	代码块
'''

练习:

判断一个年份是否是闰年,是返回闰年,否返回平年
y=int(input('请输入一个年份:'))
if (y%4==0 and y%100!=0) or y%400==0 :
    print(y,'是闰年')
else:
    print(y,'是平年')

多分支结构

year=2000
if year % 4 == 0 and year % 100 !=0:
	print('闰年')
elif year %400 ==0:
	print('闰年')
else:
	print('平年')
语法:
if 条件:
    代码elif 条件:
    代码elif 条件:
    代码else:
    代码

else合适的条件下可以不写。

练习:

一个成绩,如果成绩大于等于90,为等级A;大于等于80,为等级B,大于等于70,为等级C,大于等于60为等级D,反之为等级E。

方法(推荐)

方法,成绩必须要有顺序的写,程序只会自上而下的执行

score=float(input('输入你的成绩:'))
if score>=90: 
    print('等级A')
elif score>=80:
    print('等级B')
elif score>=70:
    print('等级C')
elif score>=60:
    print('等级D')
else:
    print('等级E')

方法

scroe = 66
if scroe >= 90:
    print('A')
elif 60 <= scroe < 70:
    print('D')
elif 70 <= scroe < 80:
    print('C')
elif scroe >= 80 and scroe < 90:
    print('B')
else:
    print('E')

嵌套分支

单分支和多分支可以相互嵌套

练习:

一个整数,判断是不是2的倍数,如果是2的倍数,再判断是否是3的倍数

number=10
if number %2 ==0:
    print('是2的倍数')
    if number %3==0:
        print('是3的倍数')
else:
    print('不是2的倍数')

三目运算符

语法:
结果1 if 条件 else 结果2
如果条件成立结果为结果1,否则为结果2
注意:并不是所有单分支结构都能转换成三目运算符
age=18
if age >=18:
    print('成年')
else:
    print('未成年')

将上方代码转换成三目运算符,如下:

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

三目运算符使代码看起来更简洁清晰

原文地址:https://www.jb51.cc/wenti/3286999.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐