跳至主要內容
CS-PY101 Lab 2 Solution

1. 概念题

    • int:这是一个整数类型,可以是正数、负数或零。
    • float:这是一个浮点数类型,可以表示实数,包括小数。
    • bool:这是一个布尔类型,只有两个值:True 和 False。
    • list:这是一个有序的集合,可以随时添加和删除其中的元素。
    • dict:这是一个无序的键值对集合,键必须是唯一的。
    • str:这是一个字符串类型,用于表示文本数据。
    • tuple:这是一个有序的、不可变的集合。
    • set:这是一个无序的、不重复的元素集。
  1. 使用 type() 函数可以如下检测:

    print(type(a))
    print(type(b))
    print(type(c))
    
  2. 字符串是Python中不可变的数据类型,表示一系列字符。因为字符串是有序的,所以可以通过索引访问字符串中的字符。索引从左到右从0开始,从右到左从-1开始。

  3. Python字典的键必须是不可变类型(如int、float、str、tuple),因为字典使用哈希表来存储键值对,这要求键必须是可哈希的。不可变数据类型是可哈希的,因为它们在其生命周期内保持不变。

  4. 可以使用 in 关键字来检查键是否存在于字典中:

    if 'key' in dict:
        print('Key is present in the dictionary')
    else:
        print('Key is not present in the dictionary')
    
  5. 列表和元组都是有序的集合,但列表是可变的,而元组是不可变的。因为元组是不可变的,所以它们可以作为字典的键,但是列表不能。

  6. Python 的 bool 数据类型只有两个值:True 和 False。许多操作和函数可以隐式地将其他数据类型转换为 bool 类型。例如,空列表([])、空字符串("")、零(0)都会被转换为False,而非空列表、非空字符串和非零数值都会被转换为 True。

  7. 集合是一个无序的,不包含重复元素的集合。与列表和字典不同,集合中的元素不是通过索引来访问的,而且集合中的元素必须是不可变的。

  8. 在Python中,可变类型是可以在其创建后修改其内容的类型,例如列表、字典和集合。不可变类型是不能修改其内容的类型,例如数字、字符串和元组。

  9. 在 Python 中,字符串、列表和元组等有序数据类型都可以使用索引来访问元素。索引从左到右从 0 开始,从右到左从 -1 开始。例如,s[0] 表示字符串s的第一个字符,s[-1] 表示最后一个字符。这种特性使得我们可以很容易地访问序列的首部和尾部。

  10. 在Python中,你可以使用type()函数来判断一个变量是否是浮点数类型。例如:

    a = 1.0
    print(type(a) == float)  # True
    
  11. Python 字符串(str)的三大特性为:

    • 有序性:字符串是有序的字符序列,每个字符都有其固定位置(索引)。
    • 不可变性:字符串一旦创建,它的内容就不能被改变。
    • 任意字符:字符串可以包含任何可以输入的字符。
  12. Python 的列表(list)可以包含任何类型的数据,包括但不限于整型、浮点型、字符串、列表、元组、字典等。例如:

    a = [1, "string", [1, 2, 3], (1, 2, 3), {"key": "value"}]
    
  13. Python 中列表(list)的特性:

    • 有序性:列表是有序的元素集合,每个元素都有其固定位置(索引)。

    • 可变性:列表中的元素可以被改变,可以添加、修改、删除元素。

    • 任意数据类型:列表可以包含任何类型的数据。

    • 列表(list)与字符串(str)的异同:

      • 相同点:两者都是有序的,可以通过索引访问元素。

      • 不同点:字符串是不可变的,而列表是可变的。

  14. 元组(tuple)与列表(list)的相似之处和不同之处:

    • 相似点:两者都是有序的,可以通过索引访问元素,并且都可以存储任意类型的数据。

    • 不同点:元组是不可变的,而列表是可变的。

  15. 当存储的数据和数量不变时,选择使用元组(tuple)而不是列表(list)的原因是:元组的不可变性可以保证数据的安全性。例如,如果你需要表示一个点的二维坐标,你可以选择使用元组,因为坐标的两个值(x 和 y)在定义后不应该被改变。「经纬度估计能使你更好理解,经纬度是不会变化的。」

  16. Python中字典(dict)的特性:

    • 键值对:字典存储的是键值对。

    • 键的唯一性:字典中的键是唯一的,不能有重复的键,重复不会报错,会留下最后一个。

    • 值的任意性:字典中的值可以是任意类型的数据,且可以有重复。

    • 无序性:字典中的元素是无序的。

  17. Python 中集合(set)的特性:

    • 唯一性「互异性」:集合中的元素是唯一的,不能有重复的元素。

      • 无序性:集合中的元素是无序的,不能通过索引访问元素。

      • 可变性:可以向集合中添加和删除元素。

      • 确定性:每一个值都是确定的

      • 集合与列表(list)和元组(tuple)的不同点:

        • 列表和元组都是有序的,可以通过索引访问元素,而集合是无序的。

        • 列表和元组都可以有重复的元素,而集合中的元素必须是唯一的。

  18. Python 中各种数据类型之间的转换方法:

    • 将字符串转化为整数:可以使用 int() 函数,例如int("123")将返回整数 123。

    • 将字符串转化为浮点数:可以使用 float() 函数,例如float("1.23")将返回浮点数1.23。

    • 以上转换假设字符串是一个有效的数字表示。如果字符串不能被解析为数字,如 int("abc"),将会抛出一个 ValueError 错误。「注意⚠️:字符串要转换成数字型:必须是整型。」


AI悦创原创...大约 6 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
CS-PY101 Lab 3|Numeric Type Exercises

Numeric Type Exercises

在提前离开实验室前,你必须让实验室助教确认你的情况。如果未经确认就离开,你将无法获得本次实验的学分。

在你做好准备之后,请联系我获取此 Lab 的密码,你需要在 1h 内完成此。

注意⚠️

CS-PY101 Lab 系列针对 Python 1v1 私教系列专门制定的练习,但是!也会有部分专门特意“超出已经教学过的知识,此时你需要的做的:思考🤔️、查资料等来解决。

目的在于:我所讲解的知识或许很细很让你理解,但终究是有限的,并且技术是会更新,所以最终的目的还是引导你学会独立思考和学习。——带你掌握方法,教师是一个淡出的角色。


AI悦创原创...大约 2 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
CS-PY101 Lab 2|Introduction to Data Types

Introduction to Data Types

在提前离开实验室前,你必须让实验室助教确认你的情况。如果未经确认就离开,你将无法获得本次实验的学分。

在你做好准备之后,请联系我获取此 Lab 的密码,你需要在 1h 内完成此。

注意⚠️

CS-PY101 Lab 系列针对 Python 1v1 私教系列专门制定的练习,但是!也会有部分专门特意“超出已经教学过的知识,此时你需要的做的:思考🤔️、查资料等来解决。

目的在于:我所讲解的知识或许很细很让你理解,但终究是有限的,并且技术是会更新,所以最终的目的还是引导你学会独立思考和学习。——带你掌握方法,教师是一个淡出的角色。

对于超出的知识,不用担心,在之后的课程中,会一一解决。


AI悦创原创...大约 10 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
CS-PY101 Lab 1 Solution

1. 概念题

无答案

2. 选择题

  1. c) 变量名可以以特殊字符,如@或#,开头

    解析:Python 的变量名只能包含字母、数字和下划线。它们不能以数字开头,也不能包含特殊字符。

  2. b) print("Hello, World!")

    解析:在 Python 中,print 函数用来打印或输出指定的信息。print 函数的语法是在括号内放入要打印的内容。

  3. b) 在输出的末尾添加指定字符

    解析:print 函数的 end 参数是用来在打印内容后添加指定的字符,默认是换行符'\n'。

  4. a) 使用参数 sep = ","

    解析:print 函数的 sep 参数是用来定义在多个输出值之间插入的字符,默认是空格。

  5. a) print(a, b, end = ' ')

    解析:在 print 函数中,如果我们想在不换行的情况下打印多个值,我们需要将 end 参数设置为我们希望在打印内容后面添加的字符,比如一个空格。

  6. c) del variable

    解析:在 Python 中,我们可以使用 del 关键字来删除变量。

  7. c) x = "Orange" = y

    解析:在 Python 中,我们不能将一个值同时分配给两个变量。

  8. c) 9var

    解析:在 Python 中,变量名不能以数字开头。

  9. a) print(a, b, c, sep = ' ', end = ' ')

    解析:print 函数可以接受多个参数,并且我们可以使用 sep 和 end 参数来定义在输出值之间以及在输出后添加的字符。

  10. b) type(variable)

    解析:在 Python 中,我们可以使用内置的 type 函数来获取变量的类型。


AI悦创原创...大约 4 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
CS-PY101 Lab 1|Variable & Print

Variable & Print

在提前离开实验室前,你必须让实验室助教确认你的情况。如果未经确认就离开,你将无法获得本次实验的学分。

在你做好准备之后,请联系我获取此 Lab 的密码,你需要在 1h 内完成此。

注意⚠️

CS-PY101 Lab 系列针对 Python 1v1 私教系列专门制定的练习,但是!也会有部分专门特意“超出已经教学过的知识,此时你需要的做的:思考🤔️、查资料等来解决。

目的在于:我所讲解的知识或许很细很让你理解,但终究是有限的,并且技术是会更新,所以最终的目的还是引导你学会独立思考和学习。——带你掌握方法,教师是一个淡出的角色。

对于超出的知识,不用担心,在之后的课程中,会一一解决。


AI悦创原创...大约 7 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
05|需求分析:如何确定在线视频平台的核心功能模块?

你好,我是悦创。

学习 Python 前后端开发,关键抓手就是项目实践。只有在真实项目中历练,你才能收获最有价值的提升。那什么样的项目适合我们呢?在我看来,项目在精不在多。就拿面试来说,面试官尤其关注的是你是否具备丰富的项目经验,以及对技术的掌握程度。因此,我们要在项目的精度和广度方面下功夫。

为了让你充分锻炼能力,拓宽自己的业务领域,我选择了当下热度非常高的在线视频平台。经历这样一个实操项目,你将接触更多元的功能开发,在工作里更加自如地应对各类项目。无论你是否做过项目开发都不要担心,跟着我的节奏学习,我会带你综合应用前后端技术,增强你的技术硬实力。


AI悦创原创...大约 4 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
04|Vue概览:Vue哪些内容是你必须要掌握的?

你好,我是悦创。

相信想要学习前端的你一定听说过 Vue 框架。

Vue 和 React 都是 Web 前端工程师必学必会的框架,在企业中有着广泛的应用。这节课我们就来揭开 Vue 的神秘面纱,一起来看看 Vue 里必须掌握的知识点,以及怎样学习 Vue 才更加高效。

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型。无论是简单还是复杂的界面,Vue 都可以胜任,可以说是我们高效开发用户界面的一大利器。


AI悦创原创...大约 19 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
03|初识 Web:学习 Web 最好的方式是什么?

你好,我是悦创。

我们每个人都浏览过无数个 Web 网页,只要打开浏览器里面就有无数网站,每一个网站又由很多个网页组成。

网页的起源要追溯到 1989 年,CERN(欧洲粒子物理研究所)的一个小组提交了一个针对 Internet 的新协议和一个使用该协议的文档系统,该小组将这个新系统命名为 World Wide Web,它的目的是让全球的科学家能够利用 Internet 交流自己的工作文档。


AI悦创原创...大约 15 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
02|初识Python(下):入门Python你应该怎么做?

你好,我是悦创。

上节课,我们主要学习了 Python 基础的数据类型和脚本语言,通过大量的 API 和案例应用,相信你对 Python 的基础部分已经有了较全面的了解。

但是,如果我们想要进一步地应用 Python,只懂得基础部分是不够的,例如,如果我们想应用 Python 做数据分析应该如何实现呢?要实现文化社区视频平台,又该掌握 Python 的哪些技术点呢?

这节课我们就一起来学习 Python 的高阶应用,相信你已经迫不及待了。Python 的高阶应用主要包括数据分析和项目开发两部分,我们先来看数据分析。


AI悦创原创...大约 13 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
01|初识 Python(上):入门 Python 你应该怎么做?

你好,我是悦创。

Python 的语法简单易学、用途广泛,可以说是当下最火的一门语言。它被广泛地应用在数据分析、爬虫、自动化办公、后端开发、自动化测试、人工智能等领域,可以说上天入地,无所不能。

所以说,我们入门了 Python,就等于拿到了开启很多知识的金钥匙。这节课,我们就来入门 Python。今天要学的内容比较多,但是不要担心,只要你跟着我把学习思路整理好,掌握起来还是非常容易的。

1. 初识 Python

我们先简单了解一下 Python。


AI悦创原创...大约 26 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1
开篇词|打通前后端技术,玩转视频平台

你好,我是悦创。

1. Python 有哪些优势?

在我看来,Python 是我们拓宽技术广度,提升技术实力的强力助攻。

一方面,Python 上手丝滑,便捷友好。

接触到 Python,即是意外,也是惊喜。我早年做前端的时候,因为开发效率比较高,常常需要等后端接口开发的同学,于是我提出替他分担一些后端模块开发的工作,在这样的机会下就接触到了 Python。

当时的体感非常有趣—— Python 没有 Java 那么“重”,整个的语法和 JS 又很相似。当时能独立完成用户模块功能的开发,离不开 Python 的功劳。


AI悦创原创...大约 13 分钟1v1Python LabCS-PY101 LabPython 1v11v1Python LabCS-PY101 LabPython 1v1