Python课本第五章课后习题选做

5-2 更多的条件测试 :你并非只能创建 10 个测试。如果你想尝试做更多的比较,可再编写一些测试,并将它们加入到 conditional_tests.py 中。对于下面列出的各种测试,至少编写一个结果为 True 和 False 的测试。
    a. 检查两个字符串相等和不等。
    b. 使用函数 lower() 的测试。
    c. 检查两个数字相等、不等、大于、小于、大于等于和小于等于。
    d. 使用关键字 and 和 or 的测试。
    e. 测试特定的值是否包含在列表中。
    f. 测试特定的值是否未包含在列表中。
print( 'Hello' == 'Hello' )
print( 'Hello' == 'hello' )
print( 'Hello' != 'Hello' )
print( 'Hello' != 'hello' )

print( 'Hello'.lower() == 'hello' )

print( 1 == 1 )
print( 1 == 2 )
print( 1 != 1 )
print( 1 != 2 )
print( 1 > 1 )
print( 1 <= 1 )
print( 1 < 2 )
print( 1 >= 2 )

print( 1+1 < 4 and 5-1 <= 4 )
print( 1 == 1 and 1 == 2 )
print( 1 == 1 or 1 == 2 )
print( 1+1 > 4 and 5-1 != 4 )

li = [ 1, 2, 3 ]
print( 1 in li )
print( 4 in li )
print( 4 not in li )
True  
False 
False 
True  
True  
True  
False 
False 
True  
False 
True  
True  
False 
True  
False 
True  
False 
True  
False 
True  
5-6 人生的不同阶段 :设置变量 age 的值,再编写一个 if-elif-else 结构,根据 age 的值判断处于人生的哪个阶段。
    a. 如果一个人的年龄小于 2 岁,就打印一条消息,指出他是婴儿。
    b. 如果一个人的年龄为 2 (含)~ 4 岁,就打印一条消息,指出他正蹒跚学步。
    c. 如果一个人的年龄为 4 (含)~ 13 岁,就打印一条消息,指出他是儿童。
    d. 如果一个人的年龄为 13 (含)~ 20 岁,就打印一条消息,指出他是青少年。
    e. 如果一个人的年龄为 20 (含)~ 65 岁,就打印一条消息,指出他是成年人。

    f. 如果一个人的年龄超过 65 (含)岁,就打印一条消息,指出他是老年人。

ages = [ 1, 2, 4, 13, 20, 65 ]

for age in ages:
    if age < 2:
        print('He is a baby.')
    elif age < 4:
        print('He is learing to walk.')
    elif age < 13:
        print('He is a child.')
    elif age < 20:
        print('He is a teenager.')
    elif age < 65:
        print('He is a adult.')
    else:
        print('He is a old man.')
He is a baby.
He is learing to walk.
He is a child.
He is a teenager.
He is a adult.
He is a old man.
5-7 喜欢的水果 :创建一个列表,其中包含你喜欢的水果,再编写一系列独立的 if 语句,检查列表中是否包含特定的水果。
    a. 将该列表命名为 favorite_fruits ,并在其中包含三种水果。
    b. 编写 5 条 if 语句,每条都检查某种水果是否包含在列表中,如果包含在列表中,就打印一条消息,如 “You really like bananas!” 。
favorite_fruits = [ 'bananas', 'apples', 'pears' ]

if 'bananas' in  favorite_fruits:
     print('You really like bananas!')
if 'apples' in  favorite_fruits:
     print('You really like apples!')
if 'pears' in  favorite_fruits:
     print('You really like pears!')
if 'grapes' in  favorite_fruits:
     print('You really like grapes!')
if 'watermelons' in  favorite_fruits:
     print('You really like watermelons!')
You really like bananas!
You really like apples!
You really like pears!
5-8 以特殊方式跟管理员打招呼 :创建一个至少包含 5 个用户名的列表,且其中一个用户名为 'admin' 。想象你要编写代码,在每位用户登录网站后都打印一条问候消息。遍历用户名列表,并向每位用户打印一条问候消息。
    a. 如果用户名为 'admin' ,就打印一条特殊的问候消息,如 “Hello admin, would you like to see a status report?” 。
    b. 否则,打印一条普通的问候消息,如 “Hello Eric, thank you for logging in again” 。
users = [ 'admin', 'cindy', 'candy', 'dancy', 'dandy' ]

for user in users:
    if user == 'admin':
        print('Hello admin, would you like to see a status report?')
    else:
        print('Hello {}, thank you for logging in again'.format(user))
Hello admin, would you like to see a status report?
Hello cindy, thank you for logging in again
Hello candy, thank you for logging in again
Hello dancy, thank you for logging in again
Hello dandy, thank you for logging in again
5-11 序数 :序数表示位置,如 1st 和 2nd 。大多数序数都以 th 结尾,只有 1 、 2 和 3 例外。
    a. 在一个列表中存储数字 1~9 。
    b. 遍历这个列表。
    c. 在循环中使用一个 if-elif-else 结构,以打印每个数字对应的序数。输出内容应为 1st 、 2nd 、 3rd 、 4th 、 5th 、 6th 、 7th 、 8th 和 9th ,但每个序数都独占一行。
nums = list(range(1,10))

for num in nums:
    if num == 1:
        print( str(num) + 'st' )
    elif num == 2:
        print( str(num) + 'nd' )
    elif num == 3:
        print( str(num) + 'rd' )
    else:
        print( str(num) + 'th' )
1st
2nd
3rd
4th
5th
6th
7th
8th
9th









### 关于计算机网络第八版第三章课后习题答案 目前无法直接提供《计算机网络》第八版第三章课后习题的具体答案内容,因为这涉及版权保护以及学术诚信的原则。然而,可以就该章节的核心知识点进行解析,并帮助理解相关内容。 #### 计算机网络的发展历程概述 互联网的基础结构经历了多个阶段的演进,这些阶段并非完全独立,而是存在一定的重叠。具体来说,第一阶段是从单一网络 ARPANET 向互联网络发展;第二阶段构建了由主干网、地区网和企业/校园网组成的三级结构;而第三阶段则逐渐形成了全球范围内多层 ISP 结构的互联网体系[^1]。 此外,互联网被认为是自印刷术发明以来,在信息存储与交换领域的一次革命性进步。通过书刊和报纸传播信息曾是人类通信方式的重大突破,而互联网进一步实现了即时性和全球化的信息共享能力[^2]。 对于学习者而言,《计算机网络》教材中的每一章都围绕特定主题展开深入讨论。如果希望掌握第三章的内容并完成相应练习,则建议采取如下策略: - **复习理论要点**:仔细阅读课本中关于协议栈模型(如 OSI 和 TCP/IP)、数据封装解封机制等方面的知识点。 - **尝试解答题目**:先自行思考每道习题可能涉及到的概念和技术细节。 - **查阅官方资源**:部分出版社可能会发布配套的学习指南或者教师手册,其中包含了标准答案解释。 以下是基于一般教学经验总结的一些典型问题及其分析方向的例子: #### 示例代码片段说明 有时为了更好地阐释某些概念会用到编程实例。比如模拟简单的客户端服务器交互可以用 Python 实现如下功能: ```python import socket def start_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) host = 'localhost' port = 9999 try: server_socket.bind((host, port)) server_socket.listen(5) while True: client_sock, addr = server_socket.accept() message = client_sock.recv(1024).decode('utf-8') print(f"Received from {addr}: {message}") response = f"ECHO: {message}" client_sock.send(response.encode('utf-8')) client_sock.close() except Exception as e: print(e) if __name__ == "__main__": start_server() ``` 此段程序展示了如何创建一个基本TCP回显服务端,有助于加深对套接字操作的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值