第五章条件控制语句

作业:

     1 求1000以内所有的⽔仙花数 
     2 获取⽤户输⼊的任意数,判断其是否是质数?
1000以内所有的水仙花数
# 指的是一个3位数 每个位数上的n次幂之和等于它本身
# 例如 1 ** 3 + 5 ** 3 + 3 ** 3 = 153

# 先获取1000以内的所有三位数
i = 100
while i < 1000:
    #
    #     # print(i)
    #     # 判断i是水仙花数
    #     # 假设 i的 百位数是a 十位数是b 个位数是c
    a = i // 100  # 百位数
    b = i // 10 % 10
    # b = (i - a * 100) // 10  # 十位数
    c = i % 10  取余  # 个位数
    #     # print(i,a,b,c)
    #     #  1 ** 3 + 5 ** 3 + 3 ** 3 = 153
    if a ** 3 + b ** 3 + c ** 3 == i:
        print(i)
    #
    i += 1

 获取用户输入的任意数,判断其是否是质数?
# 什么是质数 只能够被1和它本身整除的数就是质数 2 3 5 7 11 ... 97                    1不是质数

num = int(input('请输入任意大于1的数:'))

i = 2
# 判断num是质数或者不是质数
# 定义一个标记 用来记录Num是否是质数 默认是质数
flag = True

while i < num:

    if num % i == 0:
        # 证明num肯定不是质数

        # print(num)
        flag = False
    i += 1

if flag:
    print(num, '是质数')
else:
    print(num, '不是质数')

5.4 非布尔值的与或运算
• 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
• 非布尔值与运算的规则
• 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
• 非布尔值或运算的规则
• 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值

逻辑与运算 and
b= false and true #( 与 运算 如果a和b都为真,则结果为真,如果a和b中有一
                 #( 个条件为假,则结果为假。)
print(b) #返回的是false
b = 0 and 1      #( 与 运算,0 是 false, 1 是 true,与运算返回是假,值他本身
print(b) #返回的是false 就是0
b = 1 and 2    #( 与 运算,1 是  true, 2 是 true,与运算返回的是第二个true,值他本身  
print(b) 返回的是2

逻辑或运算 or
b = False or True #或运算同假为假 一真为真,输出的是True
print(b)
b  = 2 or 3 #或运算同假为假 一真为真,输出是第一个的值
print(b)
b  = 0 or 1 #或运算同假为假 一真为真,输出是第二个的值
print(b)
b  = 0 or 0 #或运算同假为假 一真为真,输出是第一个的值
print(b)

第五章条件控制语句_第1张图片

print("情人节玩的开心") if True: else(此处True后面的冒号表达的是 if条件控制语句)不能有冒号
print("情人节玩的开心") if True  else print(上老师的课很开心) #返回的是第一个值,(情人节玩的开心)(没有冒号就是条件表达式)
a = 200
b = 300
m = a if a > b else b
print(m)

优先级

a = 2 or 3 and 4
当or优先级高的时候,从左到右,返回的是4,当and的优先级高的时候返回的是2

运算符优先级运算表

if语句

if+判断+后面跟的是条件表达式

if True : print('hello')

,,,,,,,,,,,,,,
ps:if条件表达式的语法就是,语句执行前先会对他条件表达式进行一次判断,如果为True那么会执行if后面的语句,如果为False那么就不执行后面的语句
实例

num = 60
if num > 20 :print('num比20大')   

,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
拓展 input()函数
需求,获取用户输入的用户名,如果用户名使python欢迎访问

input()
print(22)
在终端的空白处输入任意字符
则显示print()的内容
username = input()
if username =='python';
print('欢迎光临')

在终端空白处输入python,即可
输入其他没结果
第五章条件控制语句_第2张图片

,,,,,,,,,,,,,

if-else语句

实例

value =int(input('你的工资是多少:'))
if value > 2000 :
    print('很棒')
else:
    print('扎心了')

input()返回的数据类型是str,不能直接和整数进行比较,必须先把str换成整数,使用int()方法
因此,将input变量转换为int型即可。

执行流程为:
先对if后面的条件表达式进行一次求值判断,如果为True则执行后面的print的代码块,如果为Fales则执行else后面的代码块

if-elif-else语句

value =30000 
if value >= 30000:      #可以后面添加     and     20000:
    print('很棒')
elif value >= 20000:    #可以后面添加   and       10000
    print('厉害')
elif value >= 10000:
    print('不错')
else:
    print('加油')
  #此时输出的是很棒

语法
他会自上向下,的依次对条件表达式进行求值判断,如果表达式的结果为True,则执行当前代码块的逻辑,,如果为false,则执行后面的代码块

value = 30000是初始值(可以自行输入)
if后面跟的是条件表达式,然后print那行是代码块
其次elif后面是条件表达式,接着print那行是代码块,最后
else没有条件表达,直接就是代码块
执行流程:
设定一个初始值value为30000.然后开始执行下面步骤,当我的值符合第一个if后面的条件表达式的时候运行第一个print代码块,然后直接输出在终端上,无需进行后面的步骤。
当我的值不满足第一个if后面的代码块的时候,满足第一个elif后面的条件表达式的时候,运行后面代码块,然后显示结果在终端上。
以此类推,当所有值都不满足的时候,则运行else的代码块,,输出到终端上

只有一个代码块会执行

#   根据指定的月份打印出对应的季节
month = 6

if month == 3 or month == 4 or month == 5:

    print('春季')

elif month == 6 or month == 7 or month == 8:

    print('夏季')

elif month == 9 or month == 10 or month == 11:

    print('秋季')

elif month == 12 or month == 1 or month == 2:
    print('冬季')
elseprint('月份不存在'
表达式二
 month = 3:
 if month >12 or month <1:
   print('月份不存在,重新输入')
 if 3 <= month <=5:
    printh(month,'春季')
 elif 6 <= month <=8:
    printh(month,'夏季')
 elif 9 <= month <=11:
    printh(month,'秋季')
 else:
   print(month,'冬季')

,,,,,,,,,,,,,,,,

if语句的练习

例题:我家的狗5岁了,5岁的狗相当于人类的年龄是多大呢?
狗的前两年的每一年相当于人类的10.5岁。然后每一年增加4岁
那么5岁的狗相当于人类的年龄就是 10.5 + 10.5 4 + 4 + 4 = 33
需求:获取用户输入的狗的年龄。然后提示人类的年龄是多大?如果用户输入的是负数提示错误信息

dog_age = float(input('请输入狗的年龄:'))

person_age = 0

if dog_age > 0:

    # 如果狗的年龄在两岁以下(包含2岁)
    if dog_age <= 2:

        person_age = dog_age * 10.5

    # 如果狗的年龄在两岁以上
    else:

        # 先计算前两年的年龄
        person_age = 2 * 10.5
        # 计算超过两年的年龄
        # person_age = person_age + (dog_age - 2) * 4                 x = x + 2 等价于 x += 2
        person_age += (dog_age - 2) * 4
    print(dog_age, '岁的狗,年纪相当于', person_age, '岁的人')
else:
    print('输入有问题')

whlie语句

while执行流程
先对whlie后面的条件语句进行求知判断判断,如果为True,执行循环体代码块的逻辑,当循环体执行结束后,继续对条件表达式进行判断,继续为True,则进行执行循环体代码,知道判断结果为Flast时,则循环终止,然后输出后面的else语句,这就是执行流程

print(1)
 print(1)
 print(1)

 while True:  # 慎用
 print(1)死循环

循环的三要素

#1.初始化表达式 通过初始化表达式我们来初始化一个变量
i = 0
#2. 条件表达式 条件表达式用来设置循环执行的条件
while i < 5:
print(i,'hello')

#3. 更新条件表达式 修改初始化表达式的值
i += 1 #i = i + 1
else:
print('else语句')

求1 - 100所有的偶数和
先找到100个数1 - 100
判断 判断哪些是偶数
求和运算

i = 0
# 定义一个变量来保存结果
r = 0
while i < 100:
 i += 1
# 判断i是否是偶数
if i % 2 == 0:
r += i # r = r + i
 print(r)

求1加到100的值

i = 0
#定义一个变量来保存结果
r = 0
while i < 100:
    i += 1
    r += i
print(r)
  • 总结

1,非布尔值的与或运算,
首先会吧非布尔值转化为布尔值,然后进行与或运算,

• 非布尔值与运算的规则
运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
• 非布尔值或运算的规则
• 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个

2,条件运算符
记住他不是if-else语句
运算符的优先级
看表
条件控制语句
if语句(上面有)
if-else语句
if-elif-else语句(指挥有一个代码块执行
whlie语句(循环语句)
三要素
初始化表达式初始化一个变量
条件表达式的规则
更新条件表达式 修改初始化变量的值

你可能感兴趣的:(python,萌新到老手)