Day 2: 作业

基础

"""
1.总结Python2与Python3中的都有哪些存放整型数的类型
"""
  Python2: int 和 long 是存放整型数的类型
  Python3: int 是存放整型数的类型
    
"""
2.有num=3.14,需要在控制台打印的结果为:03.140
"""
  num = 3.14
  print("%06.3f" %3.14)  #结果03.140

"""
3.从键盘中录入两个0~100之间的整数,打印两个数之和,如果录入信息错误,需重新录入
"""
i = 1
value = []
while True:
    num = input('请输入两个0~100之间的整数')
    if i == 0:
        print('录入结束')
        break
    if num.isdigit():
        num = int(num)
        if num <= 100:
            value.append(num)
            i -= 1
        else:
            print('数值过大')
    else:
        print('数据非法')

value_total = 0
for v in value:
    value_total += v

print('和为:%s' % value_total)

'''另一种做法'''

sum = 0
for i in range(1, 3):
    flag = ''
    while True:
        num = input('请%s输入第%s个数:' % (flag, i))
        if num.isdigit():
            num = int(num)
            if num <= 100:
                sum += num
                break
            else:
                print('数值过大!')
        else:
            print('输入不合法!')
        flag = '再次'
print('sum:', sum)

"""
4.找出目标元组 (30, 21, 53, 98, 27, 69) 中的最大数、最小数以及所有数的平均值
"""
t = (30, 21, 53, 98, 27, 69)
n_t = list(t)
n_t.sort()
print('最大值为:%s' %n_t[len(n_t)-1])
print('最小值为:%s' %n_t[0])
t_total = 0
for tt in n_t:
    t_total += tt
print('平均值为:%s' %(t_total / len(n_t)))
                                 #结果:
                                        最大值为:98
                                        最小值为:21
                                        平均值为:49.666666666666664

s4 = '{} is {}'.format('Owen', 'Teacher')
print(s4)  # Owen is Teacher


"""
5.统计元组 (1, 2, '3', '4', 5, '6', '7') 中有多少个字符串,提示:isinstance()
"""
t = (1, 2, '3', '4', 5, '6', '7')
count = 0
for e in t:
    if isinstance(e, str):
       count += 1
print(count)

高级

"""
1.找出目标元组(30, 21, 53, 98, 27, 69)中的最大数、最小数以及它们所占的索引,所有结果存放在list中
"""
t = (30, 21, 53, 98, 27, 69)
max_t = min_t = t[0]
max_index = min_index = t.index(t[0])

for i in t:
    if max_t < i:
        max_t = i
        max_index = t.index(i)
    if min_t > i:
        min_t = i
        min_index = t.index(i)

res_t = [(max_t, max_index),(min_t, min_index)]
print(res_t)
                                 #结果:[(98, 3), (21, 1)]
"""
2.将目标元组 (1, 2, 1, 2, 3, 5, 9) 形成去重后的元组 (1, 2, 3, 5, 9)
"""
t = (1, 2, 1, 2, 3, 5, 9)
temp = []
for i in t:
    if i not in temp:
        temp.append(i)
t = tuple(temp)
print(t)

"""
3.将字符串 "name:Owen|age:18|gender:男" 转换为字典 {'name': 'Owen', 'age': 18, 'gender': '男'}
"""
source = "name:Owen|age:18|gender:男"
target = {}

for t_v in source.split("|"):
    t, v = t_v.split(":")
    if v.isdigit():
        v = int(v)
    target[t] = v

print(target)
                        
"""
4.有5个人 ('Owen', 'Zero', 'Egon', 'Jerry', 'Nick') 进行街舞表演,依次上场表演,控制台打印 **表扬街舞,然后评委打分(控制台录入),得到 [('Owen', 90), ('Zero', 40), ('Egon', 70), ('Jerry', 65), ('Nick', 85)],最后将这些人按照得分进行分组,60分以下淘汰,80分及以上通过,其余待定,得到 
{
"通过": [('Owen', 90), ('Nick', 85)]
"待定": [('Egon', 70), ('Jerry', 65)]
"淘汰": [('Zero', 40)]
}
最终公布
"""
people = ('Owen', 'Zero', 'Egon', 'Jerry', 'Nick')
grade_list =[]
pass_list = []
wait_list = []
loss_list = []
for p in people:
    print('%s表演街舞' %p)
    score = int(input('请输入分数'))
    p_grade =(p, score)
    grade_list.append(p_grade)
    if score < 60:
        loss_list.append(p_grade)
    elif score < 80:
        wait_list.append(p_grade)
    else:
        pass_list.append(p_grade)

last = {
    "通过": pass_list,
    "待定": wait_list,
    "淘汰":loss_list
}
print(last)

 

posted @ 2019-09-06 15:25  shiyanyun  阅读(142)  评论(0编辑  收藏  举报