python练习二

301 阅读3分钟
# 1、编程:从控制台输入一个年份,和一个月份,计算并输出该月有多少天?其中需要判断闰年。
#  备注:闰年的判断条件为:年份能被4整除但不能被100整除,或者年份能被400整除

# 第一种
year = int((input("请输入年份:\n")))
month = int((input("请输入月份:\n")))

if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    years = "闰年"
else:
    years = "平年"
if month == 2 and years == "闰年" :
    print("{}年是闰年,{}月是29天".format(year,month))
else:
    if month in (1,3,5,7,8,10,12) and years == "闰年":
        print("{}年是闰年,{}月是31天".format(year,month))
    if month in (4,6,9,11) and years == "闰年":
        print("{}年是闰年,{}月是30天".format(year,month))

if month == 2 and years == "平年":
    print("{}年是平年,{}月是28天".format(year,month))
else:
    if month in (1,3,5,7,8,10,12) and years == "平年" :
        print("{}年是平年,{}月是31天".format(year,month))
    if month in (4,6,9,11) and years == "平年":
        print("{}年是平年,{}月是30天".format(year,month))

# 第二种
year = int((input("请输入年份:\n")))
month = int((input("请输入月份:\n")))
list1 = [4,6,9,11]
list2 = [1,3,5,7,8,10,12]
if month == 2:
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        print("本年是闰年,2月有29天")
    else:
        print("本年是平年,2月有28天")
elif month in list1:
    print("本月是30天")
elif month in list2:
    print("本月是31天")
else:
    print("你输入的时间有误,谢谢使用")
# 2、编程:从控制台输入一个整数,判断是否是素数。素数只能被1和本身整除的数(2~n-1)
# 分析:哪些是素数?235711.。。。
# 小于等于1------》不是素数
# 等于2  -------》是素数
# 357...----》 概念去判断
# 第一种
a = int(input("输入一个数:"))
for b in range(2,a):
    if a % b == 0:
        print("{}这个数不是素数".format(a))
        break
    elif a % b != 0:
        b += 1
        print("{}这个数是素数".format(a))
        break
# 第二种
num = int(input("请输入一个整数:\n"))
if num <= 1:
    print("不是素数")
elif num == 2:
    print(num,"是素数")
else:
    for i in range(2, num):
        if num % i == 0:
            print("{}这个数不是素数".format(num))
            break
    else:
        print("{}这个数是素数".format(num))


# 3、编程:定义三个使用for循环打印:三角形,正方形,长方形的方法,要求从控制台询问你喜欢的图形,
#  如输入三角形,则打印出三角形(层数自拟),如输入正方形,则打印出正方形(层数自拟)。图形参考如下
#    *
#    *   *
#    *   *   *
#    *   *   *   *

def sjx():
    a = int(input("请输入三角形的层数:"))
    for i in range(1,a+1):
        for j in range(1,i+1):
            print("*",end="  ")
        print()
def zfx():
    a = int(input("请输入三角形的层数:"))
    for i in range(1,a+1):
        for j in range(1,a+1):
            print("*",end="  ")
        print()
def cfx():
    a = int(input("请输入三角形的层数:"))
    for i in range(1,a+1):
        for j in range(1,i+1):
            print("*",end="  ")
        print()
# 方法调用:
pic = input("请输入你想要的图形,目前仅支持三角形,长方形,正方形...\n")
if pic == "三角形":
    sjx()
elif pic == "正方形":
    zfx()
elif pic == "正方形":
    zfx()
else:
    print("你想要的图形目前暂不支持,谢谢使用!")

# 4、定义四个不同的方法,计算语数英3门课程的“总分”、“平均分”、“最高分”及“最低分”。
# 创建小明变量,并输入小明语数英三门课的成绩,通过方法调用求出小明的总分、平均分、最高分和最低分
def sum1(a):    # a = [90,89,78]
    sumScore = 0
    for i in a:
        sumScore += i
    return sumScore


def avg1(a):
    return sum1(a) / 3

def max1(a):
    return max(a)

def min1(a):
    return min(a)

# 调用方法:
xiaoming = []
for i in range(3):
    score = int(input("请录入您的成绩:"))
    if 0 <= score <= 100:
        xiaoming.append(score)
    else:
        print('您录入的成绩有误')

print("小明的总分是:{}".format(sum1(xiaoming)))
print("小明的平均分是:{}".format(avg1(xiaoming)))
print("小明的最高分是:{}".format(max1(xiaoming)))
print("小明的最低分是:{}".format(min1(xiaoming)))