python 运算符 第二课

第一节

Python的运算符:

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

一丶数学运算符:

常见的数学运算符:+, -, *, /, //整除, %取余/取模, **幂运算。

C语言 除根据定义的数据类型不同,所得的结果不一样。5/2=2,5.0/2=2.5

python在不定义数据类型情况下都默认为浮点型。

注:"//" 整除,向小取整 比如说1.9取1.0。 -1.9取-2.0,类似于去掉低位数。"**" 冥运算,
练习:获取任意大于的100的数的百位数。
b = int(input("请输入数据"))
c = int(input("选择取第几位数"))
d = 1
d = b // (10 ** (c - 1)) % 10
print(d)

二,比较运算符:

<, >, >=, <=, ++, != 所有的比较运算符的结果都是布尔值。

python中的比较运算符都支持连写的方式表示取值范围。

28 < a < 60 

三,逻辑运算符:

and(与), or(或), not(非)

与:相当于"并且",全true为真,有一个false就是假。

或:相当于"或者",只要有一个为真(true)都为真(true)。

非:单目运算符,对一个数据进行判断。not一般用于正向写非常麻烦,但是方向判断比较容易的条件判断。

例如:写出不能同时被3和7整除的条件。
print(not num % 21 == 0)

短路操作:and的短路操作,例如:条件一 and 条件二 ,如果条件1是False,那么对于条件2的判断代码不会执行。

​ or的短路操作,如果条件一是true,那么条件二对应的代码不会被执行。

注意:实际开发的时候,逻辑运算符一般都是bool值。面试的时候喜欢考不是BOOL值的问题,

如果表达式的值不是布尔,就转化为布尔值在判断。

python所有类型的数据都可以转化为布尔值,所有为零为空的数值都会转化为false。

表达式1 and 表达式2 :表达式1的值为true,则返回的结果为表达式2的值。

表达式1 or 表达式2 :表达式1的值为False,这返回的结果为表达式2的值。

写出一个数能不能同时被三或者七整除。
a = int(input("输入一个数"))
print("能否被三和七整除", a % 3 == 0 and a % 7 == 0)
if a % 3 == 0 and a % 7 == 0:
    print("能被三和七同时整除")
else:
    print("不能被整除")
写出判断闰年的条件语句
a = int(input("输入年份"))
print("判断该年份是否为闰年", a % 4 == 0 or a % 100 != 0)
布尔值的转换:
print(bool(0), bool(""), bool("false"))  # false false false
print(bool("100"))  # true true

三.赋值运算符。

+=, *=, -=, /=, %=, **=, //=。

运算符的优先级:数学运算符>比较运算符>逻辑运算符>赋值运算符(最低)。

数学运算符:**>*,/,//>+,-

逻辑运算符:and > or

括号的优先级是最高的

四.位运算符:

&(按位与),|(按位或),^(按位异或),~(按位取反),>>(右移),<<(左移)。

位运算符的运算效率比一般的运算符都要高出几十倍到几百倍。

应用1:判断整数的奇偶性,数字对一进行按位与运算,运算结果是1就是奇数,结果是0就是偶数。
print(28&1, 10&1) # 0 0
print(11&1,9&1) # 1 1
应用2:

数字 << N - 快速乘 2**N

数字 >> N - 快速整除 2**N

数字 << 1 - 快速乘2 数字*2

数字 >> 1 - 快速整除2 数字//2

第二节

1.流程控制

1).顺序结构:重上往下依次执行每一条语句。

2).分支结构:根据条件选择性的执行代码。

3).循环结构:能够让代码重复执行。

2.分支结构

1).if 的单分支结构。

if 条件语句:

	代码段

说明:

(1).if -关键字,固定写法。

(2).条件语句 -任何有结果的表达方式,任何类型的数据,除赋值语句以外的运算符,表达式,函数调用表达式

(3).冒号 -固定写法。(python中冒号一般都需要换行后产生缩进来表示代码块)

(4).代码段 -和if保持一个缩进(tab=4个空格)的一条语句或者多条语句。在满足条件的时候才会执行代码。

​ 执行过程:先判断条件语句是否为True(如果不是布尔值就换换成布尔值判断)。如果是Ture就执行代码端,否则代码段不执行。

练习:输入一个整数,如果是整数,就打印”这个数能被2整除“。
a = int(input("请输入一个整数"))
if a % 2 == 0:
    print("这个数能被2整除")

b = int(input("请输入一个整数"))
if b & 1 == 0:# (写成b & 1, 在结果是奇数的的时候可以Pass)
    print("这个数能被2整除")

b = int(input("请输入一个整数"))
if b & 1:  # (写成b & 1, 在结果是奇数的的时候可以Pass)
    print("这个数不能被2整除")
2)if双分支结构
if 条件语句:
   代码块1
else:
   代码块2  

执行过程:先判断条件语句是否为True,如果是就执行代码块1,否则执行代码块2。

练习1:如果输入的数字是偶数就打印"偶数",否则打印"奇数"
练习2:根据输入的年龄值打印 ‘成年’ 或者 ‘未成年’
练习3:输入年份,根据年份值打印 ‘闰年’ 或者 ‘非闰年’
a = int(input("请输入一个整数"))
if a & 1 == 0:
    print('偶数')
else:
    print("奇数")

b = int(input("请输入您的年龄"))
if b > 18:
    print('成年')
else:
    print("未成年")

b = int(input("请输入年份"))
if b % 4 == 0:
    print('闰年')
else:
    print("非闰年")
if多分支结构 — 更具不同对条件执行不用的操作
语法:
if 条件语句1:
     代码块1
elif 条件语句2:
     代码块2
elif 条件语句3:
     代码块3
......
else:
  代码块N

执行过程:先判断条件语句N是否为True,如果是直接执行代码块N,然后条件语句直接结束,不再执行后面的语句,如果为False,则判断下一条条件语句。

练习:按照绩点要求,发放相应的奖学金,大于4绩点拿一级奖学金,大于3.5绩点小于4绩点2级奖学金,大于3绩点小于3.5绩点拿三级奖学金,大于2.5绩点小于3绩点拿四级奖学金,小于2.5绩点无奖学金。

执行过程:先判断条件语句N是否为True,如果是直接执行代码块N,然后条件语句直接结束,不再执行后面的语句,如果为False,则判断下一条条件语句。

student_grade = float(input("请输入绩点"))
if student_grade > 4:
    print("一级奖学金")
elif 3.5 <= student_grade:
    print("二级奖学金")
elif 3 <= student_grade:
    print("三级奖学金")
elif 2.5 <= student_grade:
    print("四级奖学金")
else:
    print("没有奖学金")


你可能感兴趣的:(python)