python(基本练习二)重点复习题1

今天就来总结一下我个人认为重要的复习题。

函数题

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在46911里,就直接输出
    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("")
  • 10
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值