运算符
条件运算符
a = 10
b = 20
print("a的值比较大”) if a>b else print("b的值比较大)
a = 300
b = 40
m = a if a>b else b
print(m)
运算符的优先级
- a = 2 or 3 and 4 #非布尔值的与或运算
- print(a) #and的优先级比or高,结果为2
- or比and的优先级高 结果4
- or比and的优先级一样高 结果4
- and比or的优先级高 结果2
- 下图,优先级顺序---->operator precedence 离线包位置
拓展(注):
False:0、 “空值” 、【序列】、None True:数字等
语句
if语句
if True:print(“hello”)
#如果正确,执行if后面语句(多条语句,if后面增加代码块:如下例子),否则执行else语句(冒号一定需要,区别Excel的vba)
代码块就是一种为代码的分组机制
语法
if 条件表达式:
代码块
if True:
print("hello")
> #***缩进开始,缩进结束,代码块结束。***
print("hahah")
print("大帅哥")
else:
input语句
- 需求:获取用户输入的名字,如果名字是Python,欢迎访问
- input() 函数接受一个输入数据,返回为str类型
username = input("请输入用户名:")
if username == "python":
print("欢迎访问")
value = int(input("请输入你的工资:")
if value >= 2000:
print("能养活自己了") #类型要一样才能比较,str和int不能比较
if-else语法
- 语法
if 条件表达式:
代码块#代码块需要缩进
else:
代码块
value = int(input("请输入你的工资:")
if value >= 2000:
print("能养活自己了")
else:
print("你该加油了")
value = int(input())
if value >= 30000:
print("有钱任性")
elif value >= 20000:
print("有钱真好")
elif value >= 10000:
print("哥们也月薪上万了")
else:
print("你该加油了") #自上而下的顺序的判断
# 根据月份打印所属的季节--->课堂练习
month = int(input("请输入月份:")) #优化下,0月呢?
if 1 <= month <= 3:
print("1季度")
elif 4 <= month <= 6:
print("2季度")
elif 7 <= month <= 9:
print("3季度")
else:
print("4季度")
- 课堂练习:
我加的狗5岁了,5岁的狗相当于人多大的年龄呢?
狗的前两年,每一年相当于人类的10.5岁,然后每增加1年就增加4岁
那么5岁的狗就相当于人类的年龄是 10.5+10.5+4+4+4=33 - 编写一个程序获取狗的年龄,然后通过程序来判断人的年龄是多少:如果用户输入的负数,请提示一个错误信息
dog_age = float(input("请输入狗的年龄:"))
person_age = 0
# 检查用户输入的年龄是否为负数
if dog_age < 0:
print("输入的年龄不合法")
#如果狗的年龄在2岁以下(包含2岁)
elif dog_age <= 2: #直接用狗的当前年龄乘以10.5
person_age = dog_age * 10.5 #如果狗的年龄在2岁以上
else: #先计算2岁的年龄
person_age = 2 * 10.5 #在计算超过2岁的年龄部分,和2岁的在相加
if dog_age > 0:
person_age = dog_age * 10.5 +(dog_age - 2) * 4 或者 person_age += (dog_age - 2) * 4
课堂另外一个代码块写法:
while语法
- while语句可以使指定的代码块重复执行
- 循环3要素
1、初始化表达式
2、条件表达式
3、更新条件表达式
自我总结方法3要素记忆:定义什么、想要什么、更新什么(或者2,3步颠倒)—>3步骤 如下课堂练习代码示例
- 语法:
i = 0 #第1个条件
while i < 20:#第2个条件,如果是True执行循环体,直到False,执行else后面的代码块,如果没有else结束。
i += 1 #第3个条件
print("i")
else:
print("我是else语句中的代码")
- 课堂练习:
求100以内的偶数之和
i = 0
r = 0 #定义什么
while i <= 100
r += i #想要什么
i += 2 #更新什么
print(i)
接上个例子:
i = 0
r = 0 #定义什么
while i < 100:
i += 2 #更新什么
r += i #想要什么
print(r)
或者:
i = 0
r = 0 #定义什么
while i <= 100:
if i % 2 == 0:
r += i #想要什么
i += 1 #更新什么
print(r)
接上个例子:
i = 0
r = 0 #定义什么
while i <= 100:
i += 1 #更新什么
if i % 2 == 0:
r += i #想要什么
print(r)
作业:
1、写博客
2、把老师课堂上面的代码敲3遍
3、
①:用条件运算符找3个值中的最大值(不要用if语句)
②:求1000以内所有的水仙花数
③:获取用户输入的任意数,判断其是否是质数(质数只能被1和它本身整除的数就是一个质数)
作业3.1:
方法1:
a = 10
b = 20
c = 30
m = a if a > b else b
n = m if m > c else c
print(n)
方法2:
a = 10
b = 20
c = 30
d = max(a,b,c)
print(d)
作业3.2:
代码如下,上图为运行结果:
i = 100
n = 0
while i < 1000:
a = i // 100 #之前把abc放到while外面,错误原因,abc要跟着i的变动而变动,也是属于 “更新什、
” 的数据,放在外面abc就固定住了。
b = i // 10 - a * 10 #利用之前学的运算符,也可以这么写 b = i // 10 % 10
c = i // 1 - a * 100 - b * 10 #也可以这么写 c = i % 10
if i == (a ** 3 + b ** 3 + c ** 3):
print("水仙花数是:",i)
n += 1
i += 1
print("1000以内水仙花数是:%d个"%n)
作业3.3:这题不会做,参考百度做的。
思路:输入的数据除以小于自己的数据(且不包含1),看能整除数据的个数,大于1个,即不是质数,只有1个为质数。(也可以包含1,结果为大于2个不是质数,只有两个的为质数。)
a = int(input("输入一个数判断是不是质数:"))
b = 2
c = 0
while a >= b: #限定条件,该数除以一个小于自己的数且大于1(不包含1)
if a % b == 0:
c += 1 #判断有几个可以被整除的
b += 1 #用小于该数切大于等于2的数被该数除,用结果判断是不是质数
if c > 1: #有两个以上数被整除,即不是质数
print("该数不是质数")
else: #只有一个数被整除,即为质数
print("该数是质数")