AI学习笔记——Python的几个练习题

简介: 上一篇文章中提到了学习编程练习的重要性,今天就通过几个练习题,来巩固一下Python中几个重要的技能。将字典中大于2的值过滤掉。#Filter out values of equal or greater than 2#Note that for Python 2 you will have to use iteritemsd = {"a": 1, "b": 2, "c": 3}读取输入的一句话中的单词数。
img_1d3956f40c10103593a66dfe3388727b.png

上一篇文章中提到了学习编程练习的重要性,今天就通过几个练习题,来巩固一下Python中几个重要的技能。

  1. 将字典中大于2的值过滤掉。
#Filter out values of equal or greater than 2
#Note that for Python 2 you will have to use iteritems
d = {"a": 1, "b": 2, "c": 3}
  1. 读取输入的一句话中的单词数。

  2. a,b 中的对应数字想加并输出结果。

#Print out in each line the sum of homologous items from the two sequences

a = [1, 2, 3]
b = (4, 5, 6)
  1. 发现下面代码中的错误。
#Please fix the script so that it returns the user submited first name for the first %s
#and the second name for the second %s

firstname = input("Enter first name: ")
secondname = input("Enter second name: ")
print("Your first name is %s and your second name is %s" % firstname, secondname)
  1. 打印出第三个“employee”的“LastName”,并添加一个“Albert Bert”的"employee"
d = {"employees":[{"firstName": "John", "lastName": "Doe"},
                {"firstName": "Anna", "lastName": "Smith"},
                {"firstName": "Peter", "lastName": "Jones"}],
"owners":[{"firstName": "Jack", "lastName": "Petter"},
          {"firstName": "Jessy", "lastName": "Petter"}]}
  1. 打印a中的index 和 item 输出格式如下
    Item 1 has index 0
    Item 2 has index 1
    Item 3 has index 2
a = [1, 2, 3]
  1. 在字母数字和符号中选6个字符,随机生成6位的密码。
  2. 要求用户输入用户名和密码,用户名不能与数据库中(database["Mercury", "Venus","Earth","Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"])重复,密码必须大于5位,并且包含数字和大写字母。

以上题目节选自udemy上的课程


答案如下:
1.将字典中大于2的值过滤掉

d = {"a": 1, "b": 2, "c": 3}
d = dict((key,value) for key, value in d.items() if value<3)

这个题目有几个重要的点:(1). 遍历字典格式的数据需要,d.items().
(2). 这种重构的语句在Python中非常常见。同样的我们也可以输出一个小于3的list:a = list(key for key, value in d.items() if value<3)

  1. 读取输入的一句话中的单词数。
s = input('Please enter: ')
s_list = s.split(' ')
len(s_list)

这个题目几个重点:(1). 处理String中的几个非常常见的方法,如.split(), .strip() 等等。(2). len() size() type() 等Python常见的的方法。

  1. a,b 中的对应数字想加并输出结果
a = [1, 2, 3]
b = (4, 5, 6)
print(list(i+j for i,j in zip(a,b)))

zip的使用,非常重要.

  1. 正确的答案如下
firstname = input("Enter first name: ")
secondname = input("Enter second name: ")
print("Your first name is %s and your second name is %s" % (firstname, secondname))

在Python中有多个格式输出的时候需要用元组(加括号)的形式

  1. 打印出第三个“employee”的“LastName”,并添加一个“Albert Bert”的"employee"
d = {"employees":[{"firstName": "John", "lastName": "Doe"},
                {"firstName": "Anna", "lastName": "Smith"},
                {"firstName": "Peter", "lastName": "Jones"}],
"owners":[{"firstName": "Jack", "lastName": "Petter"},
          {"firstName": "Jessy", "lastName": "Petter"}]}

print(d["employees"][2]["firstName"])
d["employees"].append({"firstName": "Albert", "lastName": "Bert"})

这道题的关键是找出d的结构,这是一个字典嵌套list再嵌套字典的结构。

  1. 打印a中的index 和 item 输出格式如下
    Item 1 has index 0
    Item 2 has index 1
    Item 3 has index 2
a = [1, 2, 3]
for index, item in enumerate(a):
  print("Item s% has index s%\n"%(item, index))

枚举enumerate 的应用,非常重要更多例子见(这里)[http://book.pythontips.com/en/latest/enumerate.html]

  1. 在字母数字和符号中选6个字符,随机生成6位的密码
import ramdon

characters = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#$%^&*()?"
chosen = ramdon.sample("characters",6)
password = "".join(chosen)

这个题目有两个知识点,(1). ramdon,这个Python自带的重要库,已经random.sample()的使用方法。(2). string.joint()这个方法。

  1. 要求用户输入用户名和密码,用户名不能与数据库中(database["Mercury", "Venus","Earth","Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"])重复,密码必须大于5位,并且包含数字和大写字母。
database = ["Mercury", "Venus","Earth","Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"]
while True:
    user_name = input("Please enter your user name: ")
    if user_name in database:
        print("The user name is exits, please try again!")
    else:
        break

while True:
    error_msg = []
    psw = input("Please enter your password: ")
    if len(psw)<6:
        error_msg.append( "Password must over 5 characters.")
    if not any(i.isdigit() for i in psw):
        error_msg.append("Password must contain at lease one number")
    if not any(i.isupper() for i in psw):
        error_msg.append("Password must contain at least one uppercase letter")
    if len(error_msg) > 0:
        for i in error_msg:
              print(i)
    else:
     break

这道题有这么几个知识点: (1). while 循环语句的使用。(2). if .... in .... 的使用。(3). i.isdigit() 和 i.isupper() 方法的使用。(4). any()的使用。


相关文章
AI学习笔记之——强化学习(Reinforcement Learning, RL)
AI学习笔记之——如何理解机器学习(Machine Learning)
人工智能学习笔记之——人工智能基本概念和词汇
人工智能学习笔记二 —— 定义问题

文章首发steemit.com 为了方便墙内阅读,搬运至此,欢迎留言或者访问我的Steemit主页

目录
相关文章
|
12天前
|
人工智能 测试技术 API
AI计算机视觉笔记二十 九:yolov10竹签模型,自动数竹签
本文介绍了如何在AutoDL平台上搭建YOLOv10环境并进行竹签检测与计数。首先从官网下载YOLOv10源码并创建虚拟环境,安装依赖库。接着通过官方模型测试环境是否正常工作。然后下载自定义数据集并配置`mycoco128.yaml`文件,使用`yolo detect train`命令或Python代码进行训练。最后,通过命令行或API调用测试训练结果,并展示竹签计数功能。如需转载,请注明原文出处。
|
12天前
|
JSON 人工智能 数据格式
AI计算机视觉笔记二十六:YOLOV8自训练关键点检测
本文档详细记录了使用YOLOv8训练关键点检测模型的过程。首先通过清华源安装YOLOv8,并验证安装。接着通过示例权重文件与测试图片`bus.jpg`演示预测流程。为准备训练数据,文档介绍了如何使用`labelme`标注工具进行关键点标注,并提供了一个Python脚本`labelme2yolo.py`将标注结果从JSON格式转换为YOLO所需的TXT格式。随后,通过Jupyter Notebook可视化标注结果确保准确性。最后,文档展示了如何组织数据集目录结构,并提供了训练与测试代码示例,包括配置文件`smoke.yaml`及训练脚本`train.py`,帮助读者完成自定义模型的训练与评估。
|
3天前
|
存储 Python 容器
Python编程基础第二天学习笔记
Python编程的第二天学习是建立在基础概念上的深化和扩展,强调了基本语法、数据类型、控制结构和函数的重要性。通过实践这些概念,可以增强对Python编程语言的理解,并为后续的高级学习打下坚实的基础。继续实践并逐渐探索更复杂的编程任务将有助于巩固和扩展这些基础知识。
23 7
|
8天前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络深度剖析:Python带你潜入AI大脑,揭秘智能背后的秘密神经元
【9月更文挑战第12天】在当今科技飞速发展的时代,人工智能(AI)已深入我们的生活,从智能助手到自动驾驶,从医疗诊断到金融分析,其力量无处不在。这一切的核心是神经网络。本文将带领您搭乘Python的航船,深入AI的大脑,揭秘智能背后的秘密神经元。通过构建神经网络模型,我们可以模拟并学习复杂的数据模式。以下是一个使用Python和TensorFlow搭建的基本神经网络示例,用于解决简单的分类问题。
31 10
|
6天前
|
Unix Shell Linux
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
9 1
|
9天前
|
机器学习/深度学习 人工智能 TensorFlow
深入骨髓的解析:Python中神经网络如何学会‘思考’,解锁AI新纪元
【9月更文挑战第11天】随着科技的发展,人工智能(AI)成为推动社会进步的关键力量,而神经网络作为AI的核心,正以其强大的学习和模式识别能力开启AI新纪元。本文将探讨Python中神经网络的工作原理,并通过示例代码展示其“思考”过程。神经网络模仿生物神经系统,通过加权连接传递信息并优化输出。Python凭借其丰富的科学计算库如TensorFlow和PyTorch,成为神经网络研究的首选语言。
12 1
|
12天前
|
机器学习/深度学习 人工智能 PyTorch
AI计算机视觉笔记三十二:LPRNet车牌识别
LPRNet是一种基于Pytorch的高性能、轻量级车牌识别框架,适用于中国及其他国家的车牌识别。该网络无需对字符进行预分割,采用端到端的轻量化设计,结合了squeezenet和inception的思想。其创新点在于去除了RNN,仅使用CNN与CTC Loss,并通过特定的卷积模块提取上下文信息。环境配置包括使用CPU开发板和Autodl训练环境。训练和测试过程需搭建虚拟环境并安装相关依赖,执行训练和测试脚本时可能遇到若干错误,需相应调整代码以确保正确运行。使用官方模型可获得较高的识别准确率,自行训练时建议增加训练轮数以提升效果。
|
12天前
|
人工智能 开发工具 计算机视觉
AI计算机视觉笔记三十:yolov8_obb旋转框训练
本文介绍了如何使用AUTODL环境搭建YOLOv8-obb的训练流程。首先创建虚拟环境并激活,然后通过指定清华源安装ultralytics库。接着下载YOLOv8源码,并使用指定命令开始训练,过程中可能会下载yolov8n.pt文件。训练完成后,可使用相应命令进行预测测试。
|
12天前
|
人工智能 PyTorch 算法框架/工具
AI计算机视觉笔记二十二:基于 LeNet5 的手写数字识别及训练
本文介绍了使用PyTorch复现LeNet5模型并检测手写数字的过程。通过搭建PyTorch环境、安装相关库和下载MNIST数据集,实现了模型训练与测试。训练过程涉及创建虚拟环境、安装PyTorch及依赖库、准备数据集,并编写训练代码。最终模型在测试集上的准确率达到0.986,满足预期要求。此项目为后续在RK3568平台上部署模型奠定了基础。
|
12天前
|
人工智能 并行计算 测试技术
AI计算机视觉笔记三十一:基于UNetMultiLane的多车道线等识别
该项目基于开源数据集 VIL100 实现了 UNetMultiLane,用于多车道线及车道线类型的识别。数据集中标注了六个车道的车道线及其类型。项目详细记录了从环境搭建到模型训练与测试的全过程,并提供了在 CPU 上进行训练和 ONNX 转换的代码示例。训练过程约需 4 小时完成 50 个 epoch。此外,还实现了视频检测功能,可在视频中实时识别车道线及其类型。