今天就来总结一下我个人认为重要的复习题。
函数题
1.判断三角形类型
#判断三角形的类型
#我会用ABCD的形式来表面我思路的过程。
n = list(map(int,input().split()))#以空格的形式将三个数输入列表里
n.sort()
//#print(n) 写程序得由简单到复杂,由杂变精,多在程序中间测试避免出错
if n[0] + n[1] > n[2]:#AAAA:先判断给的三个数能不能组成三角形,能组成就继续下面的判断
if n[0] == n[1] and n[1] ==n[2]:
print("ET") #判断等边
elif n[0] == n[1] or n[0] == n[2] or n[2] == n[1]:
print("IT")#判断等腰
elif n[0]**2 + n[1] **2 == n[2]**2:
print("RT")#判断直角
else:
print("OT")#普通的三角形
else:
print("Not a triangle")#AAAA:不能组成三角形就输出
2.月份与天数
#本题的思想是之前的根据c语言中有一道题也是关于年月天的题,所以我碰到这题就依照那题的思路来了
#这题会给出第二种更简单的思路
moth = [0,1,2,3,4,5,6,7,8,9,10,11,12]#AAAA:将月数和天数放在两个列表里
day = [0,31,28,31,30,31,30,31,31,30,31,30,31]#BBBB:在里面加个0,可以与月份对应,day[月份]可以直接找到月份的天数
ym =input()
y = int(ym[0:4])#取出里面的年份
m = int(ym[4:])#取出里面的月份
#print(y,m)
if (y %4==0 and y %100 !=0) or y %400 ==0:#判断是不是闰年
if m ==2:#是闰年2月份就+1
print(day[m]+1)
else:#是闰年但不是二月的天数
print(day[m])
else:#不是闰年就直接输出
print(day[m])
#第二种更简便,省去列表的步骤
ym = int(input())
y,m= ym //100,ym % 100
if m ==2:
d =29 if y %4 ==0 and y %100!=0 or y %400 ==0 else 28 #直接判断是不是闰年,是闰年直接输出20=9,不是直接输出28
elif m in {4,6,9,11}:#只要m在4,6,9,11里,就直接输出
d =30
else:#反之就输出31
d =31
print(d)
3.等腰空心三角形
n = int(input())#根据题目,n是定义边界的,n是控制有几行的
#那么我们的思路是找出左边有几个空格,然后*有怎么样的特殊条件。
#根据图上找规律,发现如果n是5,第一行左边的空格有四个,第二行左边的空格有三个。。。。
#那么左边的空格的规律是n - i
for i in range(1,n+1):
space = n -i# i= 1时,第一行时,输出四个空格
for j in range(1,space+1):#一个一个输出
print(" ",end="")
# 上面是当i循环时,每一层的左边的空格都是n- i 个
#下面开始输出*
#观察发现*是第一个和最后一个是输出的,所以要加个判断第一个和最后一个位置的条件,中间的部分输出" "
star_num = 2 * i -1 #判断最后一个位置的条件
for x in range(1,star_num+1):
if x ==1 or x == star_num or i ==n :#AAAA:最后一行中间是没有" "的,那么我们加个i==n的条件
print("*",end="")
else:
print(" ",end="")
print("")