Python刚刚入门,将自己每次所学的知识及理解总结下来,希望能够帮助大家,知识点如有不妥之处,还望指出,一起进步
目录
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="")