函数
# 1. 请手写一个函数,用来取出1—100(均包含)中5的倍数或者带有数字5的所有整数
# def func(b): # 定义函数 添加形参 b
#
# for i in range(1, b + 1): # 循环所有1-b所有数字
# if i % 5 == 0 or "5" in str(i): # 判断3的倍数或者带有数字3的所有整数
# print(i) # 输出
#
#
# func(100) # 调用函数 添加实参
# 2. lis = [2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv'] 写一个函数将该列表中的tt变成大写
# def func():
# lis = [2, 3, 'k', ['qwe', 20, ['k', ['tt', 3, '1']], 89], 'ab', 'adv']
# lis[3][2][1][0] = 'TT' # 查下标替换tt 为 TT
# print(lis)
#
#
# func()
# 3. 打印该年所有月份,并显示所属季节,如:“1月 冬季 2月 冬季 3月 春季”等
# class MyYear(object):
#
# def __init__(self, year): # 定义实例属性
# self.year = year
#
# def show_season(self):
# for i in range(1, 13): # 循环 1 - 12,然后判断
# if i >= 3 and i <= 5:
# print("%d 春季" % i)
# elif i >= 6 and i <= 8:
# print("%d 夏季" % i)
# elif i >= 9 and i <= 11:
# print("%d 秋季" % i)
# else:
# print("%d 冬季" % i)
#
#
# year = int(input('输入年份:'))
# p = MyYear(year)
# p.show_season()
# 4. 用户由键盘随机输入一个年份,如:2018,打印该年是否是闰年(能被4整除但不能被100整除,或者能被400整除的年 份)
# class MyYear(object):
#
# def __init__(self, year): # 定义实例属性
# self.year = year
#
# def isleap(self):
# if self.year % 400 == 0 or (self.year % 4 == 0 and self.year % 100 != 0): # 判断闰年
# print("%d年是闰年" % self.year)
# else:
# print("%d不是闰年" % self.year)
#
#
# year = int(input('输入年份:'))
# p = MyYear(year)
# p.isleap()
# 5. 判断数字是否是回文数(数字顺读和逆读都是一样)
# class MyYear(object):
#
# def __init__(self, year): # 定义实例属性
# self.year = year
#
# def check_num(self):
# self.year = str(self.year) # 转换类型
# if self.year == self.year[::-1]: # 判断是否是回文数
# print("%d是回文数" % int(self.year))
# else:
# print("%d不是回文数" % int(self.year))
#
#
# year = int(input('输入年份:'))
# p = MyYear(year)
# p.check_num()
面向对象
# 1. 功能描述
# 定义一个类:MyYear ,它包含:
class MyYear(object):
# 1个实例属性:year
# 用户由键盘随机输入一个年份,如:2018,将该值作为MyYear类__init__方法的一个参数传入,并赋给类的实例属性year
def init(self, year): # 定义实例属性
self.year = year
# 7个实例方法:
# 1) show_season()
# 打印该年所有月份,并显示所属季节,如:“1月 冬季 2月 冬季 3月 春季”等
def show_season(self):
for i in range(1, 13): # 循环 1 - 12,然后判断
if i >= 3 and i <= 5:
print("%d 春季" % i)
elif i >= 6 and i <= 8:
print("%d 夏季" % i)
elif i >= 9 and i <= 11:
print("%d 秋季" % i)
else:
print("%d 冬季" % i)
# 2) isleap()
# 打印该年是否是闰年(能被4整除但不能被100整除,或者能被400整除的年 份),如:如果属性year的值为2018,则输出:“2018年不是闰年”
def isleap(self):
if self.year % 4000 or (self.year % 40 and self.year % 100 != 0): # 判断闰年
print("%d年是闰年" % self.year)
else:
print("%d不是闰年" % self.year)
# 3) year_sum()
# 打印从1到该年所在数字之间所有整数的和,如:如果属性year的值为2018, 则计算1+2+3+4+5+...+2018的值并输出结果。
def year_sum(self):
print(sum(range(1, self.year))) # 循环计算 1-self.year 的和
# 4) check_num()
# 判断该年所在数字是否是回文数(即是给定一个数,这个数顺读和逆读都是一样 的)并输出判断结果,如:如果属性year的值为2002,则输出“2002是回文 数”, 如果属性year的值为2018,则输出“2018不是回文数”
def check_num(self):
self.year = str(self.year) # 转换类型
if self.year == self.year[::-1]: # 判断是否是回文数
print("%d是回文数" % int(self.year))
else:
print("%d不是回文数" % int(self.year))
# 5) show_leap_year()
# 判断从公元1年到该年所在的区间内的所有年份,输出所有闰年年份
# 如:如果属性year的值为20,则输出 4 8 12 16 20
def show_leap_year(self):
self.year = int(self.year) # 转换类型
for i in range(1, self.year + 1): # 循环1—year所有年份
if (i % 40 and i % 100 != 0) or (i % 4000): # 判断闰年
print(int(i))
# 6) show_num_div()
# 打印出从1-该年所在数字之间所有能被9整除或者包含数字9的年份,
# 如:如果属性year的值为20,则输出 9 18 19
def show_num_div(self):
for i in range(1, self.year + 1): # 循环1—year所有年份
if i % 9 == 0 or '9' in str(i): # 判断9整除或者包含数字9的年份
print(i)
year = int(input('输入年份:'))
p = MyYear()
p.show_season()
p.isleap()
p.year_sum()
p.check_num()
p.show_leap_year()
p.show_num_div()
# 2. 功能描述
# 定义一个类:MyNum,它包含:
class MyNum():
# 1个实例属性:num
# 用户由键盘随机输入一个正整数数字,如:100,将该值作为MyNum类__init__方法的一个参数传入,并赋给类的实例属性num
def init(self, num): # 实例属性
self.num = num
# 6个实例方法:
# 1) show_num()
# 打印从1到属性num之间所有的数字,如:如果属性num为100,则打印“1 2 3 4 ...99 100”
def show_num(self, num):
for i in range(1, num + 1): # 循环1到属性num之间所有的数字
print(i)
# 2) calc_sum()
# 计算从1-num之间所有数字的和并输出,如:如果属性num的值为100,则计算 1+2+3+...+99+100的值
def calc_sum(self, num):
print(sum(range(1, num + 1, ))) # 1到属性num之间所有的数字计算和
# 3) calc_odd_sum()
# 计算从1-num之间所有奇数的和并输出,如:如果属性num的值为100,则计算 1+3+5+7+...+99的值
def calc_odd_sum(self, num):
print(sum(range(1, num + 1, 2))) # 1到属性num之间所有的数字计算奇数和
# 4) calc_even_sum()
# 计算从1-num之间所有偶数的和并输出,如:如果属性num的值为100,则计算 2+4+6+8+...+100的值
def clac_even_sum(self, num):
print(sum(range(0, num + 1, 2))) # 1到属性num之间所有的数字计算偶数和
# 5) show_num_div()
# 打印出从1-num之间所有能被7整除的数
def show_num_div(self, num):
l = [i for i in range(1, num + 1) if i % 7 == 0]
print(l)
# 6) check_num()
# 判断num是否是回文数(即是给定一个数,这个数顺读和逆读都是一样的)并输 出判断结果,如:如果属性num的值为101,则输出“101是回文数”;如果属性 num的值为123,则输出“123不是回文数”
def check_num(self, num):
self.num = str(self.num) # 装换类型
if self.num == self.num[::-1]: # 判断是否是回文数
print("%d是回文数" % int(self.num))
else:
print("%d不是回文数" % int(self.num))
num = int(input('请输入数字'))
p = MyNum(num)
p.show_num()
p.calc_sum()
p.calc_odd_sum()
p.clac_even_sum()
p.show_num_div()
p.check_num()