Python学习day02

__author__:Orange

一、运算符

Python中支持的运算符:数学运算符、比较运算符、逻辑运算符、赋值运算符、位运算

1.数学运算符:

数学运算符:+(加法运算)、-(减法运算)、*(乘法运算)、/(除法运算)、%(取余、取模)、//(整除)、**(幂运算)

1) +、-、*、/和数学中功能意向

2) % - 取余、取模(数学中求余数)

x % y - 求 x 除以 y 的余数

应用1:判断一个数是否能被另一个数整除(判断奇偶性)

应用2:取整数的低位数

x % 10 -获取x的个位数
x % 100 - 获取x的后两位数

3)// - 整除(商取整)

x // y - x除以y的商向小取整

应用3:去掉低位数

num = 23562 // 100    -   num = 235

num = int(input(":"))

if num > 100:
    a = num // 100 % 10     # a = num % 1000 //100
    print(a)
else:
    print("error")

4) ** - 幂运算

x ** y -> 求 x 的 y 次方
例如:

3 ** 3    ->27
8 ** 0.5  -> 4.0
8 ** (1/3)   -> 2.0

2.比较运算符

比较运算符:> 、 < 、==、>=、<=、!=
比较运算符运行结果为bool

print("sda" == "sda")    # True

3.逻辑运算符

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

1) and - 与

多个条件同时为True 返回True
只要有一个不满足返回False

2) or - 或

条件判断中至少有一个满足返回True
两个同时不满足返回False

3) not - 非

条件判断,True变False,False变True
not True -> False
not False -> True

4) 短路操作

and 的短路操作:条件1 and 条件2 - 如果条件1是False,那么条件2对应的代码不会执行
or 的短路操作:条件1 or 条件2 - 如果条件1是True,那么条件2代码不会执行

5)运算对象不是布尔值

实际开发的时候逻辑运算和运算结果一般都是布尔,但是面试的时候会考运算对象不是布尔的情况

表达式1 and 表达式2   -   如果表达式1的结果是True,那么运算结果就是表达式2的值;
                        如果表达式1的结果是False,那么运算结果是表达式1的值;
表达式1 or 表达式2    -   如果表达式1的结果是False,那么运算结果是表达式2的值;                         
                        如果表达式1的结果是True,那么运算结果是表达式1的值。
注意:如果表达式的值不是布尔,就转换成布尔再进行判断
     Python中任何类型数据都能转换为布尔值,除了为0为空的值其余全是True
逻辑与运算
num = 21
print('能否同时被3和7整除:', num % 3 == 0 and num % 7 == 0)	# 结果为True
逻辑或运算
num = input("请输入:")
print("今天下雨或者出太阳:", num == "下雨" or num == "出太阳")
闰年
year = 2012
print("是否是闰年:", year % 4 == 0 and year % 100 != 0 or year == 400)	# True
逻辑非运算
# 如果正向写很麻烦,但反向写简单,就反向写调节然后加not
age = 18
print(not age > 18)     # True
运算对象不是布尔值
print(5 and 3)     # 3
print(5 or 3)      # 5

4.赋值运算符

赋值运算符:=、+=、-=、*=、/=、%=、//=、**=
所有的赋值运算符都是给变量赋值,赋值运算符的左边必须是变量;
符合的赋值运算符的左边变量必须是已经赋值过的变量。

a = 10
a += 10     # a = a + 10
a -= 10     # a = a - 10
a *= 10     # a = a * 10
a /= 10     # a = a / 10
a %= 10     # a = a % 10
a //= 10    # a = a // 10
a **= 10    # a = a ** 10
print(a)	# 0.0

5.运算优先级

数学运算符 > 比较运算符 > 赋值运算符(最低)
数学运算符:’**’ > ‘*、/、%、//’ > ‘+、-’
逻辑运算符:and > or > not
如果有括号先算括号里面的

6.位运算

位运算:&(按位与)、|(按位或)、^(按位异或)、~(按位取反)、>>(右移)、<<(左移)
位运算的运算效率比一般的运算符都要高(高出几十倍到几百倍)
应用1:
判断整数的奇偶性 - 数字对1进行按位与运算,如果结果是1就是奇数,结果为0是偶数
应用2:

数字 << N   -   快速乘 '2**N'
数字 >> N   -   快速整除 '2**N'

二、分支结构

1.流程控制

结构流程
顺序结构从上往下执行每一条语句(默认)
分支结构根据条件选择性的执行代码(if语句)
循环结构让代码重复执行(for、while)

2.分支结构

1)if单分支结构 - 满足条件执行某个操作,不满足就不执行

语法:
if 条件语句:
代码段

说明:

1.if        -   关键字,固定写法
2.条件语句   -   任何有结果的表达式:任何类型的数据、
                除赋值语句以外的运算表达式、函数调用表达式
3.冒号       -   固定写法。(Python中冒号后一般需要换行产生缩进来表示代码块)
4.代码段     -if保持一个缩进(tab)的一条或者多条语句;
                在满足条件的时候才会执行的代码

执行过程:
先判断条件语句是否为True(如果不是布尔值就转换成布尔再判断)
如果是True就执行代码段,否则代码段不执行
if语句代码段中至少要有一条语句,在不确定的时候可以使用pass占位

num = int(input("请输入一个整数:"))
if num & 1 == 0:
    print("这是一个偶数")

Python中的比较运算符支持连写多方式表示取值范围

2) if双分支结构 - 满足条件执行某个操作,条件不满足执行另外的一个操作

语法:
if 条件语句1:
代码块1 (满足条件要执行的代码)
else:
代码块2 (不满足条件要执行的代码)
执行过程:
先判断条件语句是否为True,如果是就执行代码块1,否则执行代码块2

if num & 1 == 0:
    print("这是一个偶数")
else:
    print("这是一个奇数")
age = int(input("请输入年龄:"))
if age >= 18:
    print("成年人")
else:
    print("未成年")
year = int(input("请输入年份:"))
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print("闰年")
else:
    print("非闰年")

3) if多分支结构 - 根据不同的条件执行不同的操作

语法:

if 条件语句1:
    代码块1
elif 条件语句2:
    代码块2
...
else:
    代码块N

执行过程:
先判断条件语句1是否为True,如果是直接执行代码块1,整个if结构结束;
如果条件语句1为False,判断是否条件语句2是否为True,若是,就执行代码块2;
如果整个if条件语句都不满足就执行else的代码块。

例一:
gpa = float(input("请输入学生绩点:"))
if gpa > 4:
    print("一等")
elif gpa >= 3.5:
    print("二等")
elif gpa >= 3:
    print("三等")
elif gpa >= 2.5:
    print("四等")
else:
    print("还请加油")

例二:
height = float(input("请输入您的身高(m):"))
weight = float(input("请输入您的体重(kg):"))
if 18.5 <= weight/height**2 <=24.9:
    print("您身材正常!")
else:
    print("您需要多锻炼")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值