5.Python练习 (20200527)

Python练习 (20200527)

1.三角形的构成条件是:任意两边之和大于第三边。请编写程序,定义变量a、b和c表示三角形的3条边长,判断这3条边能否构成三角形。

 1 def fun(a,b,c):
 2     '''三角形三边条件判断'''
 3     if a>0 and b>0 and c>0:
 4         if a+b>c and a+c>b and b+c>a:
 5             return'可以构成三角形'
 6         else:
 7             return '不能构成三角形'
 8     else:
 9         return '三角形的三边不能小于0'
10 print('请输入三角形三边的长度:')
11 a = int(input('a = '))
12 b = int(input('b = '))
13 c = int(input('c = '))
14 result = fun(a,b,c)
15 print(result)
16 
17 # => 请输入三角形三边的长度:
18 # => a = 4
19 # => b = 5
20 # => c = 6
21 # => 可以构成三角形

2.录入多个正整数,判断最大的数是多少,并指出第几个数最大。

 1 # 方法一:使用列表,max函数(录入多个数据可以使用)
 2 lis = []
 3 def in_():
 4     '''输入整数'''
 5     print('请输入多个正整数:(0 退出)')
 6     tag = True
 7     while tag:
 8         num = int(input('>>>'))
 9         if num == 0:
10             tag = False
11         else:
12             lis.append(num)
13     print(lis)
14     return lis
15 def func():
16     '''判断整数大小,指出最大'''
17     in_()
18     a = max(lis)
19     b = lis.index(a)
20     return '最大数:%s,第%s个数最大'%(a,b+1)
21 res = func()
22 print(res)
23 
24 # => 请输入多个正整数:(0 退出)
25 # => >>>45
26 # => >>>62
27 # => >>>32
28 # => >>>45
29 # => >>>12
30 # => >>>1
31 # => >>>0
32 # => [45, 62, 32, 45, 12, 1]
33 # => 最大数:62,第2个数最大
34 
35 
36 # 方法二:参考系(使用个数较少的数据)
37 print('请依次录入3个数据')
38 a = int(input('>>>'))
39 b = int(input('>>>'))
40 c = int(input('>>>'))
41 # 指定一个参考系:最大值为-1
42 max_num = -1
43 # 记录指针
44 index_num = 0
45 if max_num < a:
46     max_num = a
47     index_num = 1
48 elif max_num < b:
49     max_num = b
50     index_num = 2
51 elif max_num < c:
52     max_num = c
53     index_num = 3
54 print('最大值为:%s,第%s个数最大'%(max_num,index_num))
55 
56 # => 请依次录入3个数据
57 # => >>>45
58 # => >>>32
59 # => >>>1
60 # => 最大值为:45,第1个数最大

3.输入年份、月份和日期,输出该日期是今年的第几天。需要考虑闰年问题。其中闰年的判断条件是:①能整除4且不能整除100;②能整除400.也就是四年一闰,百年不闰,四百年再闰。

 1 def what_day(year,month,day):
 2     '''判断输入的年份、月份和日期是今年的第几天'''
 3     feb = 28
 4     if year%4==0 and year%100!=0 or year%400==0:
 5         feb = 29
 6     res_day = 0
 7     lis = [31,feb,31,30,31,30,31,31,30,31,30,31]
 8     if month==1:
 9         res_day = day
10     else:
11         for i in range(0,month-1):
12             res_day = res_day+lis[i]
13         res_day += day
14     return '今年第%s天'%res_day
15 print('------输入年份、月份和日期,输出天数------')
16 year = int(input('年份:\n>>>'))
17 month = int(input('月份:\n>>>'))
18 day = int(input('日期:\n>>>'))
19 result = what_day(year,month,day)
20 print(result)
21 
22 # => ------输入年份、月份和日期,输出天数------
23 # => 年份:
24 # => >>>2020
25 # => 月份:
26 # => >>>6
27 # => 日期:
28 # => >>>1
29 # => 今年第153天

 

posted @ 2020-05-27 19:49  星落……  阅读(156)  评论(0)    收藏  举报