写完第一篇之后,这几天又处理了很多事情,租房、工作、维修。不禁感叹自己还是得早点学好本事,增加收入,拥有自己的房子才行。租房太累,工作也不得踏实。吐槽完毕,安装环境、语法基础部分都跳过,直接到三个题目。
- 打印三角形
分为三角形,倒三角形和等腰三角形
三角形
def triangle():
n = int(input('please enter the length of triangle!'))
for i in range(n):
print("*"*(i+1))
triangle()
打印结果:
倒三角形
def z_triangle():
n = int(input('please enter the length of triangle!'))
for i in range(n,0,-1):
print("*"*(i))
z_triangle()
打印结果:
等腰三角形
def equ_triangle():
n = int(input('please enter the length of triangle!'))
for i in range(n):
print(" "*(n-i-1)+"*"*(2*i+1))
equ_triangle()
打印结果:
- 求1000以内的完全数有哪些
如果一个数恰好等于它的因子之和,则称该数为“完全数”,又称完美数或完备数。
例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
1000以内的完全数
def is_perfect(num):
t=sum(x for x in range(1,int(num/2)+1) if num%x == 0)
if t==num:
print("%s is perfect number" % t)
for i in range(1,1000):
is_perfect(i)
打印结果:
3、打印万年历
打印万年历的条件
判断是否为闰年
计算每种情况下,每个月份的天数
由2计算每年的天数
计算每月一日对应的星期,基于1990年1月1日是星期一
打印万年历
class Calendar(object):
# 获取需要打印的年月,并初始化赋值
def __init__(self):
self.year = int(input("请输入查询的年份(如:2010):"))
self.month= int(input("请输入查询的月份(如:3):"))
# 判断是否是闰年
def leap_year(self):
if self.year%400==0 or (self.year%100==0 and self.year%4==0):
return True
# 判断输入月份的天数
def days_of_month(self):
if self.month in [1,3,5,7,8,10,12]:
return 31
elif self.month in [4,6,9,11]:
return 30
elif self.leap_year() == 'True':
return 29
else:
return 28
# 计算与19900101间隔的天数
def days_between_19900101(self):
sum_days = 0
for y in range(1990, self.year + 1):
# 闰年加366天
if self.leap_year():
sum_days += 366
# 正常加365天
else:
sum_days += 365
for m in range(1, self.month):
sum_days += self.days_of_month()
return sum_days
# 判断打印月份的第一天是星期几
def firstday_of_month(self):
first_of_day = 1 + self.days_between_19900101() % 7
return first_of_day
# 打印日历
def print_cal(self):
print(str(self.year) + "年 " + str(self.month) + "月 ")
# 打印星期栏
print(" "'星期一'" " '星期二'" "'星期三'" "'星期四'" "'星期五'" "'星期六'" "'星期日')
d = self.firstday_of_month()
print((' ' * (d - 1)), end="")
for p in range(1, self.days_of_month() + 1):
if d % 7 != 0:
# 按照长度不同空不同的距离,保证右对齐
if len(str(p)) == 1:
print(' ', end="")
print(p, end='')
print(' ', end="")
else:
print(' ', end="")
print(p, end='')
print(' ', end="")
else:
# 如果是周日,则下一个日期换行输出显示
if len(str(p)) == 1:
print(' ', end="")
print(p)
else:
print(' ', end="")
print(p)
d = d + 1
if __name__ == '__main__':
Cal = Calendar()
Cal.print_cal()
打印结果: