高级编程技术第五、六次作业

时间:2022-06-21 19:35:14

第五次作业:

5-5 外星人颜色#3 :将练习5-4中的if-else 结构改为if-elif-else 结构。

  • 如果外星人是绿色的,就打印一条消息,指出玩家获得了5个点。
  • 如果外星人是黄色的,就打印一条消息,指出玩家获得了10个点。
  • 如果外星人是红色的,就打印一条消息,指出玩家获得了15个点。
  • 编写这个程序的三个版本,它们分别在外星人为绿色、黄色和红色时打印一条消息。
# 只编写了一个版本,利用for语句来确保各个部分被执行
aline_colors = ['green', 'yellow', 'red']
for alien_color in aline_colors:
    print('aline_color = ' + alien_color)
    if alien_color == 'green':
        print('\tyou got 5 points')
    elif alien_color == 'yellow':
        print('\tyou got 10 points')
    elif alien_color == 'red':
        print('\tyou got 15 points')

5-10 检查用户名 :按下面的说明编写一个程序,模拟网站确保每位用户的用户名都独一无二的方式。

  • 创建一个至少包含5个用户名的列表,并将其命名为current_users 。
  • 再创建一个包含5个用户名的列表,将其命名为new_users ,并确保其中有一两个用户名也包含在列表current_users 中。
  • 遍历列表new_users ,对于其中的每个用户名,都检查它是否已被使用。如果是这样,就打印一条消息,指出需要输入别的用户名;否则,打印一条消息,指出这个用户名未被使用。
  • 确保比较时不区分大消息;换句话说,如果用户名'John' 已被使用,应拒绝用户名'JOHN' 。
current_users = ['Alice', 'Bob', 'Charlie', 'David', 'Ellis']
new_users = ['ALICE', 'BoB', 'Ford', 'Gray', 'Howard']
for new_user in new_users:
    flag = False
    for current_user in current_users:
        if new_user.lower() == current_user.lower():
            flag = True
    if flag:
        print(new_user + ' your name has been used, please use another name')
    else:
        print(new_user + ' this name can be used')

5-11 序数 :序数表示位置,如1st和2nd。大多数序数都以th结尾,只有1、2和3例外。

  • 在一个列表中存储数字1~9。
  • 遍历这个列表。
  • 在循环中使用一个if-elif-else 结构,以打印每个数字对应的序数。输出内容应为1st 、2nd 、3rd 、4th 、5th 、6th 、7th 、8th 和9th ,但每个序数都独占一行。
numbers = list(range(1, 10, 1))
tmp = [' ', 'st', 'nd', 'rd']
for number in numbers:
    if number > 3:
        print('%dth'%(number))
    else:
        print('%d'%(number) + tmp[number])

第六次作业:

6-2 喜欢的数字 :使用一个字典来存储一些人喜欢的数字。请想出5个人的名字,并将这些名字用作字典中的键;想出每个人喜欢的一个数字,并将这些数字作为值存储在字典中。打印每个人的名字和喜欢的数字。为让这个程序更有趣,通过询问朋友确保数据是真实的。

favorite_numbers = {
    'Alice' : 1,
    'Bob' : 2,
    'Charile' : 3,
    'David' : 4,
    'Ellis' : 5,
    }
for name, number in favorite_numbers.items():
    print(name + "'s favorite number is " + str(number))

6-5 河流 :创建一个字典,在其中存储三条大河流及其流经的国家。其中一个键—值对可能是'nile': 'egypt' 。

  • 使用循环为每条河流打印一条消息,如“The Nileruns throughEgypt.”。
  • 使用循环将该字典中每条河流的名字都打印出来。
  • 使用循环将该字典包含的每个国家的名字都打印出来。
rivers = {
    'Nile' : 'Egypt',
    'Yellow River' : 'China',
    'The Yangtze River' : 'China',
    }
for river, country in rivers.items():
    print(river + ' runs through ' + country)
for river in rivers.keys():
    print(river)
for country in set(rivers.values()):
    print(country)

6-10 喜欢的数字 :修改为完成练习6-2而编写的程序,让每个人都可以有多个喜欢的数字,然后将每个人的名字及其喜欢的数字打印出来

favorite_numbers = {
    'Alice' : [1, 2, 3],
    'Bob' : [2, 4, 6],
    'Charile' : 3,
    'David' : [4, 6],
    'Ellis' : [5, 25, 125],
    }
for name, numbers in favorite_numbers.items():
    print(name + "'s favorite numbers are " + str(numbers))