【Python-2】条件语句及练习

Python刚刚入门,将自己每次所学的知识及理解总结下来,希望能够帮助大家,知识点如有不妥之处,还望指出,一起进步

目录

1.if语句

2.if-elif语句

3.if-elif-else语句 

注意事项:

练习

1.判断奇偶(运用位运算的知识)

题目:

代码:

2.if-else语句

题目:

代码:

3.if-elif-else语句

题目:

代码:

4.长方形

题目:

思路:

代码:

5.声音的频率

题目:

思路:

代码:

6.乘积最大的两个数

题目:

代码:

7.花的颜色

题目:

思路:

代码:

8.跑步成绩

题目:

思路:

代码:


1.if语句

if 条件判断语句:
    代码块

2.if-elif语句

if 条件判断语句:
    代码块
elif 条件判断语句:
    代码块

3.if-elif-else语句 

if 条件判断语句:
    代码块
elif 条件判断语句:
    代码块
else:
    代码块

注意事项:

Python的没有{},是以缩进的形式呈现的,它的内容就是代码块


条件判断语句可以加(),也可不加


Python的并且或者的形式是and 和 or


在比较数字大小,Python可直接写成正常的表达式,例如:1<=i<=3:


条件语句过长时想分几行写时,可在这行结尾输入\,这样下行就可以继续写未写完的条件语句了,在练习4有体现

练习

1.判断奇偶(运用位运算的知识)

题目:

"""
    输入一个整数,然后依次判断:

    如果它是奇数,那么输出Odd;

    如果它大于0,那么输出>0;

    如果它等于6,那么输出6。

    每次输出都要换行,当然你有可能一行都不会输出。
"""

代码:

num = int(input())
if num & 1 == 1:
    print("Odd")
"""
    想一下为什么判断奇偶不用%2==0
    我们知道与运算符是对两个数的二进制位进行比较,只要有一个位的数为零结果就为0,否则为1
    二进制的从右往左每位分别为2^0,0为从右往左的索引值(这里的0只是举例),这里的^是平方不是异或运算,因此我们可以发现,
    除了第一位剩下的每一位计算后都分别是偶数,他们相加也为偶数,所以我们判断奇偶只需看最后一位是1还是0
    这时与运算就非常好用,他可以帮我们排查
    举例:3是奇数还是偶数
        将3与1进行与运算
        3的二进制位为011,而1的二进制位为001,通过与运算,只要一个位的数为0,结果为0,否则为1
        那么我们就能得到结果001,那么就能判断他是奇数
    为什么要用与运算?
    其实就是效率高,他是直接对操作数的二进制进行运算
"""
if num > 0:
    print(">0")
if num == 6:
    print(6)

2.if-else语句

题目:

"""
    输入一个整数,如果它能被 5 整除,那么输出它的 3 倍,否则输出它的 2 倍。
"""

代码:

num = int(input())
if num % 5 == 0:
    print(num * 3)
else:
    print(num * 2)

3.if-elif-else语句

题目:

"""
    输入一个整数,输出它与0的关系
"""

代码:

num = int(input())
if num > 0:
    print(">")
elif num == 0:
    print("=")
else:
    print("<")

4.长方形

题目:

"""
    有4根木棍,不能折断,问是否能构成长方形?
"""

思路:

"""
    思路:
        很简单四个数两两相等并且相同的两组彼此之间不能相等
"""

代码:

l = list(map(int, input().split()))
if (l[0] == l[1] and l[1] != l[2] and l[2] == l[3]) or \
        (l[0] == l[2] and l[1] != l[2] and l[1] == l[3]) or \
        (l[0] == l[3] and l[0] != l[1] and l[1] == l[2]):
    print("Yes", end="")
else:
    print("No", end="")

5.声音的频率

题目:

"""
    人类对于声音频率的听觉范围是20~20000Hz(包括20和20000),现在来了五种不同的动物,分别发出一段具有固定频率的声音。
    求这五段声音中,人能听到的频率最低和最高的声音频率。
    输入
    只有一组案例。
    5个正整数,分别表示五种动物分别发出的声音频率。
    输出
    两个整数,分别代表人能听到的声音中的最低频率和最高频率,中间留一个空格。
    如果所有声音人都听不到,则输出-1。
    不要换行。
"""

思路:

"""
    思路:
    这道题很简单,直接用sort就好,或者设置变量来一个一个比较,找最小值和最大值
    设置两个布尔变量来看是否有最大值和最小值
    都为False则说明没有最大最小值,输出1
"""

代码:

l = list(map(int, input().split()))
l.sort()
bool1 = False
bool2 = False
for i in l:
    # i代表列表里的值,不是索引值,因此不能写l[i]
    if 20 <= i <= 20000:
        print(i, end=" ")
        bool1 = True
        break
for i in l[::-1]:
    # 倒序输出[::-1]
    if 20 <= i <= 20000:
        print(i, end="")
        bool2 = True
        break
if bool1 == bool2 == False:
    print(-1, end="")

6.乘积最大的两个数

题目:

"""
    找出三个整数中乘积最大的两个数
    输入
    三个整数a、b、c(-10000~10000之间),保证只有唯一的解。
    输出
    乘积最大的两个数,按小的在前大的在后的顺序,中间隔一个空格。
    不要换行。
"""

代码:

l = list(map(int, input().split()))
if l[0] * l[1] > l[1] * l[2] and l[0] * l[1] > l[0] * l[2]:
    print(min(l[0], l[1]), max(l[0], l[1]), end="")
if l[0] * l[2] > l[1] * l[2] and l[0] * l[2] > l[0] * l[1]:
    print(min(l[0], l[2]), max(l[0], l[2]), end="")
if l[1] * l[2] > l[0] * l[1] and l[1] * l[2] > l[0] * l[2]:
    print(min(l[1], l[2]), max(l[1], l[2]), end="")

7.花的颜色

题目:

"""
    同学们采集了a种不同颜色的花,并给这些颜色编号,编号分别为0、1、2、...、a-1。
    每种颜色的花都采集了相当多朵。同学们按照颜色编号把花扎成一排,使得从头开始,每朵花的颜色编号分别为0、1、2、...、a-1、0、1、2、...,
    这样一直有规律地重复下去。
    按照这个规律可以看出,第1朵花的颜色编号是0,第2朵花的颜色编号是1,...,第a朵花的颜色编号是a-1,第a+1朵花的颜色编号是0。
    现在想知道第b朵花的颜色编号是多少?
"""

思路:

"""
    思路:
        我们要观察花的种数与总数的关系,种数与编号的关系(也可以看成种数与索引值的关系),
        种数与编号的关系:
            可以看做一个长度为种数的数组,里面的值就是索引值(这是为了方便理解,如果能理解种数与编号的关系就不用看做数组了)
        总数与种数的关系有两种:
            总数可看做是以种数为长度的数组循环
            1.总数与种数是整除关系,那么此时的编号就是数组中的最后一个数,即长度(种数)-1
            2.总数与种数不是整除关系,那么此时的编号就是:
                先求最后一组(即总数%种数),取其最后一个数,也就是对应的索引值,
                结果就是总数%种数-1
"""

代码:

l = list(map(int, input().split()))
if l[1] % l[0] == 0:
    print(l[0] - 1, end="")
else:
    print(l[1] % l[0] - 1, end="")

8.跑步成绩

题目:

输入

已知跑步时间和成绩的关系如下:

等级
优秀03:00以内(含)03:40以内(含)
良好03:01-04:00(含)03:41-04:40(含)
及格04:01-05:00(含)04:41-05:30(含)

你的好友忘记自己的跑步等级是多少了,但是 TA 把跑步时间告诉了你,你可以帮忙查一下吗?

一行信息,先是一个单词 Male / Female 表示你的好友性别,然后是一个 00:00 - 10:00 之间的成绩。

输出

如果你的好友成绩是优秀,你就输出 You are excellent ^^

如果你的好友成绩是良好,你就输出 You are good :)

如果你的好友成绩是及格,你就输出 You Passed !

如果你的好友没有及格,你就输出 You should exercise :/

最后不要换行!

思路:

"""
    思路:
        这题很简单,
        时间以字符串的形式可以直接比较
"""

代码:

l = list(map(str, input().split()))
if l[0] == "Male":
    if l[1] <= "03:00":
        print("You are excellent ^^", end="")
    elif "03:01" <= l[1] <= "04:00":
        print("You are good :)", end="")
    elif "04:01" <= l[1] <= "05:00":
        print("You Passed !", end="")
    else:
        print("You should exercise :/", end="")
else:
    if l[1] <= "03:40":
        print("You are excellent ^^", end="")
    elif "03:41" <= l[1] <= "04:40":
        print("You are good :)", end="")
    elif "04:41" <= l[1] <= "05:30":
        print("You Passed !", end="")
    else:
        print("You should exercise :/", end="")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值