day2-作业及答案

时间:2022-07-10 22:13:07

作业:
第一组:

1.接收用户输入一个年份,判断是否是闰年(判断闰年的方法是该年能被4整除并且不能被100整除,或者是可以被400整除)

2.接收用户输入一组整数,输入负数时结束输入,输出这组数字的和:格式--您输入的数字之和是:xxxx

3.一个5位数,判断它是不是回文数。如,12321是回文数,个位与万位相同,十位与千位相同

4.接收用户输入的数字,计算该数字的阶乘

5.给定一个字符串 target = 'hello huice',从中找出第一个不重复的字符,输出它是第几位

6.去除上一题中的重复字符,得到一个新的字符串

7. 员工工资表,查询结果集如下:((1, 'zhangsan', 3000), (2, 'lisi', 2500), (3, 'tiantian', 20000))
    (1)计算员工的平均工资      
    (2)输出工资最高的员工姓名

第二组:

1.某电信公司的市内通话费计算标准如下:三分钟内0.2元,三分钟后每增加一分钟增加0.1元,不足一分钟的按一分
钟计算。要求编写程序,给定一个通话时间(单位:秒),计算出应收费金额。

2.某市的出租车计费标准为:3公里以内10元,3公里以后每0.5公里加收1元;每等待5分钟加收1元;
超过15公里的加收原价的50%为空驶费。要求编写程序,对于任意给定的里程数(单位:公里)和等待时间(单位:秒)
计算出应付车费

3.打印出100-999中所有的"水仙花数",所谓"水仙花数"是指一
  个三位数,其各位数字立方和等于该数本身。例如:
  153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方
 
4.输出100之内的素数总个数,所谓"素数"是指除了1和它本身以外,不能被任何整数整除的数,例如17
5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数
6.找1000以内最大平方数
7.输入n, 计算1到n的阶乘之和

# 作业:
# 第一组:
#
# 1.接收用户输入一个年份,判断是否是闰年(判断闰年的方法是该年能被4整除并且不能被100整除,或者是可以被400整除)
# year = input('请输入年份:')
# year = int(year)
# if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
# print('是闰年')
# else:
# print('不是闰年') # 2.接收用户输入一组整数,输入负数时结束输入,输出这组数字的和:格式--您输入的数字之和是:xxxx
# sum = 0
#
# while True:
# a = input('请输入一个整数')
# if a.isdigit():
# a = int(a)
# sum += a
# elif a.startswith('-') and a[1:].isdigit():
# break
# else:
# print('不是整数')
#
# print(sum) # 3.一个5位数,判断它是不是回文数。如,12321是回文数,个位与万位相同,十位与千位相同 # while True:
# a = input('请输入一个5位数')
#
# if a.isdigit():
# if len(a) == 5:
# if a[0] == a[-1] and a[1] == a[-2]:
# print('是回文数')
# else:
# print('不是回文数')
# else:
# print('长度不正确')
# else:
# print('输入错误') # 4.接收用户输入的数字,计算该数字的阶乘 # while True:
# result = 1
#
# n = input('请输入:')
# if n.isdigit():
# n = int(n)
# # if n != 0 and n != 1:
# for i in range(1, n+1):
# result *= i
#
# print('%d的阶乘是%d' % (n, result))
#
# else:
# print('输入错误') # 5.给定一个字符串 target = 'hello huice',从中找出第一个不重复的字符,输出它是第几位
# target = 'hello huice'
# for c in target:
# if target.count(c) == 1:
# print('第一个不重复字符是%s,它在第%d位' % (c, target.index(c) + 1))
# break # 6.去除上一题中的重复字符,得到一个新的字符串
# target = 'hello huice'
# new = ''
# for c in target:
# if target.count(c) == 1:
# new += c
# print(new)
#
# 7. 员工工资表,查询结果集如下:((1, 'zhangsan', 3000), (2, 'lisi', 2500), (3, 'tiantian', 20000))
# (1)计算员工的平均工资
# (2)输出工资最高的员工姓名 # salaries = ((1, 'zhangsan', 3000), (2, 'lisi', 2500), (3, 'tiantian', 20000))
# sum = 0
# count = len(salaries)
# max_salary = salaries[0][-1]
# max_person = salaries[0][1]
#
# for person in salaries:
# sum += person[-1]
# if person[-1] > max_salary:
# max_person = person[1]
#
# print('员工平均工资是%.2f' % (sum/count))
# print('工资最高的人是%s' % max_person) #
#
# 第二组:
#
# 1.某电信公司的市内通话费计算标准如下:三分钟内0.2元,三分钟后每增加一分钟增加0.1元,不足一分钟的按一分
# 钟计算。要求编写程序,给定一个通话时间(单位:秒),计算出应收费金额。
# while True:
# time = input('请输入通话时间:')
#
# time = int(time)
# fee = 0
#
# if time/60 <= 3:
# fee = 0.2
#
# elif time % 60 != 0:
# fee = 0.2 + 0.1 * ((time - 180)/60 + 1)
#
# elif time % 60 == 0:
# fee = 0.2 + 0.1 * (time - 180)/60
#
# print('通话时间为%d分%d秒,话费为%.2f元' % (time/60, time % 60, fee)) # 2.某市的出租车计费标准为:3公里以内10元,3公里以后每0.5公里加收1元;每等待5分钟加收1元;
# 超过15公里的加收原价的50%为空驶费。要求编写程序,对于任意给定的里程数(单位:公里)和等待时间(单位:秒)
# 计算出应付车费 # while True:
# distance = input('distance:')
# wait_time = input('wait_time:')
#
# fee = 10.0
#
# distance = float(distance)
# wait_time = float(wait_time)
#
# if distance <= 3:
# pass
# else:
# fee += 1 * (distance - 3) // 0.5
#
# if wait_time >= 0:
# fee += 1 * (wait_time // 300)
#
# if distance > 15:
# fee *= 1.5
#
# print('您的费用为%.2f' % fee) # 3.打印出100-999中所有的"水仙花数",所谓"水仙花数"是指一
# 个三位数,其各位数字立方和等于该数本身。例如:
# 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方
# for num in range(100, 1000):
# hundreds = num // 100
# decades = (num % 100) // 10
# unit = num % 10
#
# if hundreds ** 3 + decades ** 3 + unit ** 3 == num:
# print(num) # 4.输出100之内的素数总个数,所谓"素数"是指除了1和它本身以外,不能被任何整数整除的数,例如17
# counter = 0
# for n in range(1, 101):
#
# if n == 1:
# continue
#
# for i in range(2, n):
# if n % i == 0:
# break
# else:
# counter += 1
# print('一共有%d个素数' % counter) # 5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数
#找出一个数的所有因子(包括1但不包括它自身,放到一个列表里) # for num in range(1, 1001):
#
# divisors = []
# for i in range(1,num):
# if num % i == 0:
# divisors.append(i)
#
# sum = 0
# for div in divisors:
# sum += div
#
# if sum == num:
# print(num) # 6.找1000以内最大平方数
# result = 1
#
# for i in range(1, 1001):
# sqr = i ** 2
# if sqr <= 1000:
# result = sqr
# else:
# break
# print('1000以内最大平方数为%d' % result) # 7.输入n, 计算1到n的阶乘之和
# n = input('请输入n的值:')
# n = int(n)
# sum = 0
# for i in range(1, n + 1):
#
# fact = 1
# for j in range(1, i + 1):
# fact *= j
#
# sum += fact
# print('1到%d的阶乘之和为%d' % (n, sum))