作业:
第一组:

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))