大型转码连续剧之——辣条自学Python勇闯数据科学(三)内容补充与习题训练 1

本文介绍了Python编程中的基础概念,包括与Python语言的对话、数据类型识别(尤其是字符串和整数),以及正确处理用户输入、错误排查和运算符的使用。通过实例和习题,帮助读者巩固Python基础知识。
摘要由CSDN通过智能技术生成

各位大佬好,欢迎收看大型转码连续剧之——自学Python勇闯数据科学的第三集。

辣条在学完前两部分内容后认为需要补充一些细微的小点,同时再添加一部分习题以充实对知识的理解,这篇笔记就作此用处。欢迎来到辣条第一次的内容补充与习题训练

A. 与Python对话的补充

经过前面的学习我们了解了基本的与Python对话的方法,其实就是我们用Python的语言与他进行沟通,如果沟通不当,也就是用了Python不懂的语言,那就会遇到这种情况:

>>> Hi
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Hi' is not defined
>>> 

我们其实是想打个招呼,但是Python没有理解,因为我们没有用Python的语言。在类似的情况中,Python会给我们返回错误,它没有听懂。不过Python会告诉我们哪里错了错哪了其实还蛮好的:'line 1'指的是错误在你输出代码的第一行,'NameError:'后的内容是错误的原因。

这时候我们就知道,原来是Python没有听懂我们的语言,它认为'Hi'没有被定义。那好,那我们就知道了要和它用它们的语言进行沟通。

例如:

>>> print("Hello World")
Hello World
>>> 

在这里,Python就听懂了。两行代码是在解释器中进行的,第一句是我们所发送的代码,第二句是程序给我们的回复。与此同时我们可以关注到一个小符号:“>>>”,这个小符号代表的是Python 解释器询问你“你想让我下一步做什么?”,因此我们可以看出,当Python回答了我们第一个要求“打印出Hello World”后,我们的打字光标会来到第三行的“>>>”之后,这是Python 解释器在询问“你想让我下一步做什么?”

>>> goodbye
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'goodbye' is not defined
>>> quit()

同样,当我们想离开,我们也不能说goodbye,我们要用它们的语言'quit()'关闭对话。

B. 对数据类型的补充 

辣条在昨天的笔记中已经学习到了数据类型,我们了解到Python的数据类型有很多种,整数、浮点数、字符串等,那么如果带有引号的整数,是什么数据类型呢?我们来接用昨天学习的type()函数让Python给我们准确的解答:

>>> type('23')
<class 'str'>
>>> type('24')
<class 'str'>

因此,带引号的数字属于字符串,那这就提醒我们在平时的处理中要注意引号的存在了。再如:

>>> print(1,000,000)
1 0 0

当我们键入一个大整数时,我们可能会想在三位数字之间使用逗号,例如 1,000,000。这在 Python 中不是正确的表达整数,得出的结果并不尽如人意,这根本不是我们所期望的!Python 将1,000,000解释为以逗号分隔的整数序列,并在打印时使用空格。逗号的使用,这也是我们需要注意的。

此外,当我们把整数带到运算中时,要尤其注意引号的使用:

>>> a = 13
>>> b = 17
>>> print(a + b)
30

>>> a = '13'
>>> b = '14'
>>> print(a + b)
1314

显而易见,它们在运算符‘+’面前进行的内容是不同的,整数+整数=整数,字符串+字符串=字符串。与此同时我们也能看到‘+’运算符的特点:它适用于字符串,但它不是数学意义上的加法。相反,它执行的是“串联”,这意味着通过将字符串首尾相连来连接字符串

同样,‘*’在运算中也有自己独特的作用:

>>> first = 4
>>> second = 3
>>> print(first * second)
12

>>> first = 'Test '
>>> second = 3
>>> print(first * second)
Test Test Test

显然,整数*整数=整数,字符串*整数,就是将字符串展现整数次

其实我们还会遇到另外一种情况,当我们使用input函数让使用程序的人输入数字,但是后续程序的运行需要把这些数据进行运算,那就会遇到困难,我们来看看:

>>> a = input("rate") #让用户输入rate的值,为a
>>> b = input("hour") #让用户输入hour的值,为b
>>> c = a * b         #c=a*b
>>> print("Pay:" , c) #输出Pay的值,为c

这个例子想让用户输入自己的时薪,再输入自己工作的市场,来求出支付的薪资。看起来没有任何问题,但是当我们运行:

出现了错误的情况。我们一起来分析分析,系统给出的提示错误出现在第三行,原因是什么呢?

can't multiply sequence by non-int of type 'str'(无法用非整数类型的 'str' 对序列进行乘法运算)

原来如此!

看来我们让用户输入的数字,看起来是数字,但是是字符串(str)。因此,这种情况下就需要我们用内置函数float()来把它转化为浮点数(之所以不转化为整数,是因为用户有可能输入的是浮点数的时薪或工作时长)。

>>> a = input("rate") #让用户输入rate的值,为a
>>> b = input("hour") #让用户输入hour的值,为b
>>> c = float(a) * float(b)    #c=浮点数的a*浮点数的b
>>> print("Pay:" , c) #输出Pay的值,为c

那么这样应该就没有问题了,我们来看看操作的结果: 

C. 输入小技巧的补充

在这里辣条给大家提醒一个小技巧,使用的例子,是我们昨天笔记中的关于input()函数的运用举例:

# 在编辑器中:
>>> name = input("请输入你的名字")
>>> print("你好" , name)

# 在解释器中:
请输入你的名字辣条 #其中“辣条”是你输入的内容
你好 辣条

我们知道,这个举例是想获得用户的称呼,以便于程序对用户进行问好。在把这两行代码放到解释器中运行时,我们发现用户输入称呼的位置比较紧凑,不美观,和“请输入你的名字”紧紧相连。那么这时进行美化处理是比较好的。那就可以换种方式:

# 在编辑器中:
>>> name = input("请输入你的名字:")
>>> print("你好" , name)

# 在解释器中:
请输入你的名字:辣条   #其中“辣条”是你输入的内容
你好 辣条


# 在编辑器中:
>>> name = input("请输入你的名字\n")
>>> print("你好" , name)

# 在解释器中:
请输入你的名字
辣条   #其中“辣条”是你输入的内容
你好 辣条

这样,是不是就美观多了? 这里'\n'的作用是“换行符”

D. 题目训练

学完这三天的内容,基本上Python中要注意的基本点都有接触到。为了学习和看笔记复习的效果的提高,辣条特意把Dr. Chuck在他的课程中布置的作业进入笔记中。

1. 选择:计算机中辅助存储器的作用是什么?

a) 执行程序的所有计算和逻辑
b) 通过互联网检索网页
c) 长期存储信息,甚至超出电源周期
d) 接受用户输入

2. 问答:什么是程序?

程序是由一系列指令和算法组成的代码集合,用于执行特定任务或解决问题。Python是一种高级编程语言,程序员可以使用它编写高层次、可读性强的代码,这就是用Python编写的程序。

3. 问答:编译器和解释器有什么区别?

编译器(Compiler)和解释器(Interpreter)是两种将高级编程语言转换为计算机可执行代码的不同工具。它们之间的区别主要在于代码的执行方式和编译过程。编译器将整个源代码一次性转换为目标机器代码,生成可执行文件,而解释器逐行解释执行源代码,不生成可执行文件。编译器的优点是生成的目标代码执行速度较快,但编译过程需要时间,而解释器的优点是可以动态调试和执行,不需要预先生成可执行文件,但运行时可能会稍慢。

4. 选择:以下哪项包含“机器代码”?

a) Python 解释器
b) 键盘
c) Python 源文件
d) 文字处理文档

解释:

首先,机器代码是计算机能够直接执行的二进制指令序列,它是由编译器或者汇编器生成的。其次,Python 解释器是一种软件程序,它可以执行Python源代码,但Python解释器本身并不包含机器代码。然而,Python解释器在运行Python程序时,会将Python源代码转换为计算机能够执行的机器代码。

此外,键盘、Python 源文件和文字处理文档都是存储数据或代码的文件或设备,它们本身并不包含机器代码。

5. 勘误:以下代码有什么问题?

>>> primt 'Hello world!'
File "<stdin>", line 1
  primt 'Hello world!'
                     ^
SyntaxError: invalid syntax
>>>

显然,内置函数print拼写错误了。

6. 以下 Python 行结束后,计算机中的什么位置存储了诸如“x”之类的变量?

>>> x = 123

a) 中央处理单元
b) 主存储器
c) 辅助存储器
d) 输入设备
e) 输出设备

解释:在Python中,变量(如“x”)的值通常存储在主存储器(RAM,Random Access Memory)中。当Python解释器执行该行代码时,它会在主存储器中分配一块内存空间,并将变量“x”的值(在这种情况下是整数123)存储在这个内存空间中。主存储器是计算机中用于存储程序和数据的地方,它提供了对数据的随机访问,因此适合存储变量和其他数据。

7. 以下程序将打印什么?

>>> x = 43
>>> x = x - 1
>>> print(x)

a) 43
b) 42
c) x + 1
d) 错误,因为 x = x + 1 在数学上是不可能的

解释:首先,变量 x 被赋值为 43。然后,执行 x = x - 1,这意味着从变量 x 的当前值(43)中减去 1,并将结果(42)存储回变量 x 中。最后,打印变量 x 的值,即 42。

8. 使用人类能力的示例解释以下各项

(1) 中央处理单元:相当于人类的大脑。中央处理单元是计算机的核心部件,负责执行指令、进行算术和逻辑运算,控制数据的流动和处理。

(2) 主存储器:相当于人类的短期记忆。主存储器用于临时存储正在使用的数据和程序,但在断电后数据会丢失,类似于人类的短期记忆,容量有限且临时性。

(3) 辅助存储器:相当于人类的长期记忆,如书籍、磁带、硬盘等。辅助存储器用于长期存储数据和程序,即使在断电后数据仍然保留,类似于人类的长期记忆,容量较大且持久性。

(4) 输入设备:相当于人类的感官器官,如键盘、鼠标、触摸屏等。输入设备用于将外部信息输入到计算机中,类似于人类通过感官器官获取外部信息。

(5) 输出设备:相当于人类的行动,如显示器、打印机、扬声器等。输出设备用于将计算机处理后的信息展示给用户,类似于人类通过行动表达自己的想法和感觉。

9. 在 Python 解释器中键入以下语句以查看它们的作用

5
x = 5
x + 1

 解答如下:

>>> 5
5
>>> x = 5
>>> x + 1
6

 10. 编写一个程序,用于input提示用户输入姓名,然后欢迎他们。

# 在编辑器中:
>>> name = input("请输入你的名字:")
>>> print("你好" , name)

# 在解释器中:
请输入你的名字:辣条   #其中“辣条”是输入的内容
你好 辣条

 11. 编写一个程序来提示用户输入小时数和每小时费率,以计算总工资

# 在编辑器中:
>>> hours = input("Enter Hours:")
>>> rate = input("Enter Rate:")
>>> pay = float(hours) * float(rate)
>>> print("Pay:" , pay)

# 在解释器中:
Enter Hours:8   #其中“8”是输入的内容
Enter Rate:20   #其中“20”是输入的内容
Pay: 160.0

12. 写出表达式的值和(表达式值的)类型

假设我们执行以下赋值语句:

width = 17
height = 12.0

对于以下每个表达式,写出表达式的值和(表达式值的)类型,并用Python检验。

(1)  width // 2

>>> a = width // 2
>>> print(a)
8
>>> type(a)
<class 'int'> #类型为整数

(2) width / 2.0

>>> b = width / 2.0
>>> print(b)
8.5
>>> type(b)
<class 'float'> #类型为浮点数

(3) height / 3

>>> c = height / 3
>>> print(c)
4.0
>>> type(c)
<class 'float'> #类型为浮点数

(4) 1 + 2 * 5

>>> d = 1 + 2 * 5
>>> print(d)
11
>>> type(d)
<class 'int'> #类型为整数

今天辣条把前两天的内容进行了补充,同时把相关的习题和大家一起做了,希望可以起到巩固的作用。

明天辣条可能要休息一下,因为我要去外地参加一场语言考试了,希望可以顺利考过,通过学校的语言要求。顺利的话就可以认真只学Python啦!

现在是2024年2月26日17:00。

今天的笔记就写到这里,辣条很快就会回来继续学习Python,继续更新~

  • 23
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值