1、定义一个is_leap(year)函数,该函数可以判度year是否为闰年。若是闰年,则返回True;否则返回False。
import sys
def is_leap(year):
year = int(year)
if year % 4 != 0:
return False
elif year % 100 != 0:
return True
elif year % 400 != 0:
return False
else:
return True
while(True):
year = input("请输入年份:")
if year == 'exit':
sys.exit(0)
if is_leap(year):
print("您输入的年份是闰年。")
else:
print("您输入的年份不是闰年。")
2、定义一个count_str_char(my_str)函数,该函数返回参数字符串中包含多少个数字,多少个字母,多少个空白字符,多少个其他字符。
import sys
def count_str_char(my_str):
digit, char, kong, other = 0, 0, 0, 0
for i in my_str:
if i.isdigit(): digit += 1
elif i.isalpha(): char += 1
elif i.isspace(): kong += 1
else: other += 1
return digit, char, kong, other
while(True):
my_str = input("请输入字符串:")
if my_str == 'exit':
sys.exit(0)
digit, char, kong, other = count_str_char(my_str)
print("数字的个数是:%d" % digit)
print("字母的个数是:%d" % char)
print("空格的个数是:%d" % kong)
print("其他字符的个数是:%d" % other)
3、定义一个f(n)函数,该函数返回1~n的立方和,即求1+222+333+…+nnn。
import sys
def fn(n):
n = int(n)
lifang = 1
for i in range(1, n+1):
lifang += i**3
return lifang
while(True):
n = input("请输入数字:")
if n == 'exit':
sys.exit(0)
print(fn(n))
4、定义一个函数,该函数可接受一个list作为参数,该函数用于去除list中重复的元素。
def quchong(my_list):
xin_list = []
for i in my_list:
if i not in xin_list:
xin_list.append(i)
return xin_list
my_str = input("请输入字符串:")
my_list = list(my_str)
new_list = quchong(my_list)
new_str = "".join(new_list)
print(new_str)
5、定义一个f(n)函数,该函数返回一个包含n个不重复的0~100之间整数的元组。
import random
def f(n):
my_list = []
for i in range(n):
j = random.randint(0, 100)
if j not in my_list:
my_list.append(j)
return tuple(my_list)
n = int(input("请输入一个整数:"))
print(f(n))
6、定义一个fn(n)函数,该函数返回一个包含n个不重复的大写字母的元组。
import random
def fn(n):
my_list = []
new_list = []
for i in range(n):
j = random.randint(65, 90)
if j not in my_list:
my_list.append(j)
for i in my_list:
new_list.append(chr(i))
return tuple(new_list)
n = int(input("请输入一个整数:"))
print(fn(n))
7、定义一个fn(n)函数,其中n表示输出n行n列的矩阵,在输出时,西安输出n行n列的矩阵,再输出该矩阵的转置形式。例如,当参数为3时,先输出:
再输出:
def fn(n):
# 输出矩阵
for i in range(n):
for j in range(n):
print(' %2d ' % (i * n + j + 1), end="")
print()
print('-' * (4 * n))
# 输出转置矩阵
for i in range(n):
for j in range(n):
print(' %2d ' % (j * n + i + 1), end="")
print()
n = int(input("请输入整数n:"))
fn(n)
8、编写一个学生类,提供name、age、phone、address、email等属性,为学生类提供带所有成员变量的构造器,为学生提供方法,用于描绘吃、喝、玩、睡等行为。
class Student:
def __init__(self, name, age, gender, phone, address, email):
self.name = name
self.age = age
self.gender = gender
self.phone = phone
self.address = address
self.email = email
def eat(self, food):
print("%s正在吃%s" % (self.name, food))
def drink(self, drink):
print("%s正在喝%s" % (self.name, drink))
def play(self, game):
print("%s正在玩%s" % (self.name, game))
def sleep(self):
print("%s正在睡觉" % self.name)
Tom = Student('Tom', 13, '男', '156165', 'road2', '564654@qq.com')
print(Tom.address)
Tom.drink('water')
9、利用上一题定义的Student类,定义一个列表保存多个Student对象作为通讯录数据。程序可通过name、Email、address查询,如果找不到数据,则进行友好提示。
class Student:
def __init__(self, name, age, gender, phone, address, email):
self.name = name
self.age = age
self.gender = gender
self.phone = phone
self.address = address
self.email = email
def eat(self, food):
print("%s正在吃%s" % (self.name, food))
def drink(self, drink):
print("%s正在喝%s" % (self.name, drink))
def play(self, game):
print("%s正在玩%s" % (self.name, game))
def sleep(self):
print("%s正在睡觉" % self.name)
tongxunlu = [Student('Davide', 59, '男', '4561615', 'road632', '4616@qq.com'),
Student('Lisa', 16, '女', '5648498', 'road895', 'sda546@qq.com'),
Student('Jack cheng', 62, '男', '7758258', 'road426', 'dcs6546@qq.com')]
def find(shuju):
for i in tongxunlu:
if shuju == i.name:
return i
elif shuju == i.email:
return i
elif shuju == i.address:
return i
else:
return None
if __name__ == '__main__':
shuju = input("请输入name or email or address:")
if find(shuju) == None:
print("查无此人")
else:
print(find(shuju).name, find(shuju).age, find(shuju).gender,
find(shuju).phone, find(shuju).address, find(shuju).email)
10、定义代表二维坐标系上某个点的Point类(包括x, y两个属性),为该类提供一个方法用于计算两个Point之间的距离,再提供一个方法用于判断三个Point组成的三角形是钝角、锐角还是直角三角形。
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def distance(self, point2):
distance = ((self.x - point2.x)**2 + (self.y - point2.y)**2)**0.5
return distance
def triangle(self, point2, point3):
side12 = self.distance(point2)
side13 = self.distance(point3)
side23 = point2.distance(point3)
# 按从小到大的顺序排列三条边
if side12 > side13:
side12, side13 = side13, side12
if side13 > side23:
side13, side23 = side23, side13
#判断是否构成三角形
if side12 + side13 <= side23:
print("不构成三角形")
return
elif side12**2 + side13**2 == side23**2:
print("构成直角三角形")
elif side12**2 + side13**2 > side23**2:
print("构成锐角三角形")
else:
print("构成钝角三角形")
if __name__ == '__main__':
point1 = Point(2, 3)
point2 = Point(5, 10)
point3 = Point(12, 35)
side12 = point1.distance(point2)
side13 = point1.distance(point3)
side23 = point2.distance(point3)
print(side12, side13, side23)
point1.triangle(point2, point3)