“笨办法”学Python 3基础篇-打印与输入

“笨办法”学Python 3基础篇系列文章

“笨办法”学Python 3基础篇 第一部分- 打印与输入
“笨办法”学Python 3基础篇 第二部分-文件操作
“笨办法”学Python 3基础篇 第三部分-函数
“笨办法”学Python 3基础篇 第四部分-数据容器与程序结构
“笨办法”学Python 3基础篇 第五部分-面向对象的类
“笨办法”学Python 3基础篇 第六部分-项目骨架与自动测试
“笨办法”学Python 3基础篇 第七部分-搭建简易的网站


第一部分 打印与输入

0 前言

我为什么开始学Python呢?说来话长。在博士期间,我从事的是控制理论的研究,期间通过玩玩数学游戏发了几篇SCI论文。毕业来到了目前工作的单位,一晃5年过去了,也没有继续自己博士期间的研究,因为实在是枯燥乏味,激不起研究的兴趣。
一切改变的契机发生在去年的疫情期间,我在网上听了合肥某家企业组织的线上讲座,讲座的题目是强化学习与最优控制。当时听完后感觉强化学习这个概念很好,与自己长久以来一直寻找的研究方向非常符合。于是就上了知乎搜索强化学习的入门书籍。其中一本受广大网友推崇的入门书籍为《深入浅出强化学习原理入门》,这本书理论相对比较精简,特色是提供了Ubuntu系统下丰富的强化学习案例代码,供初学者学习。
正是在Ubuntu上摸索强化学习算法的过程中,我渐渐发现,强化学习目前主流的编程语言为Python。在学习强化学习算法前,我没有一点Python的基础,仅凭着C++的一点功底和强大的网络,坚持着学习强化学习案例的Python代码。
野路子终归不是长久之计。于是,为了能在强化学习的道路上坚持走下去,我在今年寒假期间购买了广受好评的Zed A.Shaw著作《“笨办法”学Python 3》和《“笨办法”学Python 3 进阶篇》这两本书。从2021年2月1日开始到2021年3月4日完成了第一本书上给出的52个训练题,基本了解了Python 3的输入输出、数据类型、语法逻辑、项目架构、代码自动测试以及初步的网站制作。
孔子曰:温故而知新。在进入下一阶段的学习时,我觉得有必要将上个月学习Python 3时碎片化的知识进行系统的归纳和整理,故在此开始着笔整理。

1.1 Python版本、系统平台和文档编辑器

本次学习所用的Python版本为3.6.8。由于还没有涉及到git的安装,因此我选择了Windows系统,当然在ubuntu系统下是最好的,可以无缝斜街后续的进阶课程。除了命令行指令有些不太一样之外,其余在使用下无任何影响。
文档编辑器我选择了Visual Studio Code来进行编辑,当然也可以选择Atom。根据书中要求,利用PowerShell(Windows下的一个命令行终端)来运行.py的脚本文件,摆脱IDE的限制,也能够锻炼自己调试代码的能力。
文本编辑器与PowerShell

1.2 print 用法

接下来将介绍学习Python编程语言第一个需要的技能,即如何让程序以字符串的形式输出信息。这一应用在后续程序遇到Bug时,用来显示跟踪程序内部数据的变化非常有用,相当于利用Pycharm等IDE软件实现Debug的功能。

1.2.1 打印多行字符串

如果需要终端打印一条

Hello World !
It’s your first python code.

的字符串信息,那么,最简单的方法为:
方法一:多个print直接打印字符串

print ("Hello World !")
print("It's your first python code.")

在PowerShell中定位到程序的当前目录,输入命令

Python .\csdn_print.py

运行csdn_print.py脚本,这里的csdn_print.py指的是一个名称为csdn_print的python脚本。如图1所示,PowerShell中将会显示地将双引号下的字符串信息打印到命令行中。值得注意的是,每一个print命令都会让字符串自动的分行。
当然,有时直接使用字符串太麻烦,我们常常将字符串定义成变量使用,即
方法二:通过字符串变量直接打印字符串

a = "Hello World !"
b = "It's your first python code."
print(a)
print(b)

方法三:3双引号打印多行字符串
另一种方法是使用3双引号,能够只使用一个print()实现同样的打印效果,用法为:

print("""Hello World !
It's your first python code.""")

打印时,当扫描到3双引号中每一行的换行符时,实现字符串自动换行。
方法四:转义字符 \n 实现多行字符串打印
当然,还能使用转义字符\n实现换行打印。

print("Hello World !\nIt's your first python code.")

1.2.2 打印拼接字符串

当我们需要打印上述两个字符串的拼接时(不换行),即

Hello World ! It’s your first python code.

最简单的方法是重新定义一个上述字符串变量,然后用print()实现。如果需要拼接的字符串比较多时,这种方法效率将会非常低下。因此,常用这几种方法实现拼接。
方法一:多个print函数实现拼接

print("Hellp World !", end=' ')
print("It's your first python code.")

第一个print中的end=‘ ’所起的作用是使得前后字符串拼接时不会因为用了两个print命令而出现分行,且两个字符串有一个空格符隔开。
方法二:一个print函数实现拼接

a = "Hellp World ! "
b = "It's your first python code."
print(a + b)

在print中,字符串变量a和字符串变量b通过‘+’实现了拼接,但整个拼接时不会自动在两个字符串间填充空格符。
方法三;利用print和‘,’

a = "Hello World !"
b = "It's your first python code."
print(a, b)

在print中,字符串变量a和字符串变量b通过‘,’实现了拼接,不同于方法二,拼接时两个字符串间自动填充空格符。

1.2.3 打印变量和数字

在之前的打印多行字符串中,我们已经使用了变量。变量可以使程序更简洁,更符合自然语言。如打印:

There are 100 cars in the park.

变量与字符串同时打印的典型用法为:

cars = 100
print("There are", cars, "casrs in the park.")

在打印过程中,变量cars的值100会转变为字符显示在终端。
进一步,如果变量不是直接赋值,而是通过其他变量的数学运算赋值,那么代码可以修改为:

cars_store = 200
cars_out = 100
cars = cars_store - cars_out
print("There are", cars, "casrs in the park.")

1.2.4 打印格式化字符串

格式化字符串的核心是在字符串中嵌入变量,那么随着每次变量值的变化,打印出的字符串信息也会发生变化,典型的应用场景就是在debug时,通过格式化字符串输出需要监控的变量值的变化。
方法一:以f、引号和{}构成的格式化字符串打印
这种格式化字符串必须以f开头,f是“格式化”的意思。字符串里需要嵌入的变量用一对“{变量名}”特殊符号实现,例如:f“Hello {Somewhere} !”。当Somewhere这个变量为字符串“World”时,利用print函数就能打印输出:

Hello World !

Somewhere = "China"
print(f"Hello {Somewhere} !")
Somewhere = "World"
print(f"Hello {Somewhere} !")

第一次调用print函数时,打印的是Hello China !。第二次调用print函数时,此时Somewhere变量被格式化为World,因此打印为Hello World !
方法二:采用.format()
这种方法适用于在已经创建的字符串上应用格式化,比如循环中。

Somewhere = "USA" 
greet = "Hello {} !"
print(greet.format(Somewhere))

执行这段程序后,Somewhere的值就会格式greet这个字符串,最终打印出:

Hello USA !

1.3 input 用法

当掌握了如何打印出各种信息后,接下来需要掌握的就是如何向脚本输入信息,增加程序的灵活性。而一般软件做的就是:

(1)接收输入的内容;
(2)改变输入的内容;
(3)打印出改变了的内容。

1.3.1 基本输入的用法

输入的用法比较简单,常常接在提问后面,提示使用者输入信息:

print("How old are you?", end=' ')
age = input()
print(f"You are {age} old.")

在这一段代码中,首先脚本向我们提问。我们根据提示信息,输入数字,回车结束输入。输入的内容为字符串格式,赋给age这个变量。在下一个print中调用格式化字符串,打印出我们输入的年龄。
PowerShell显示结果
更规范的写法是在输入时有提示符,如

age = input('> ')

另外,由于输入的内容为字符串格式,因此如果想要实现变量的数学运算时,需要对输入数据的格式类型进行转换,如:

age = int(input('> '))
new_age = age + 1

此时,变量age不在是字符串变量,而被转化成整形变量,从而可以避免运行第二行代码时因为操作数类型错误而报错。

1.3.2 利用.split( ) 实现输入字符串的切片

这种情形的应用场景可以这样描述:
“你的年龄,学历?”
“20, 研究生。”
只需要回答一次,就能提供所需的所有变量的值。那么,就必须在input(“> ”)时,实现字符串的切片。这个功能需采用python 3的内置函数.split()实现。
链接:split 用法

split()通过指定分隔符对字符串进行切片,语法格式为:
str.split(str = “”, num = string.count(str))
参数:str – 分隔符,默认为所有的空字符,包括空格、换行、制表符等
参数:num - 分割次数。默认为-1,即分割所有。如果num有指定值,则分割为num + 1个字符串。
返回值:返回分割后的字符串列表。

与输入结合的应用:

print("How old and tall are you?", end=' ')
age, height = input('age and height >').split()
print(f"You are {age} old, {height} tall.")

用split()按照空字符对输入字符串进行了切片,返回列表中的第一个元素赋值给age,第二个元素赋值给height,接着利用格式化字符串实现打印。
split与input结合的用法

1.4 后记

本次学习Python没有采用学院派的系统架构学习方法,而是像学徒式地以解决任务的方式进行地学习,基本处于需要用到什么学什么。因此,尚缺乏对Python的整体架构的掌握。但这种学习方式的好处,在于能够迅速在庞大的函数中定位到所需的功能代码块,能够解决几类共性的问题,注重实践能力的培养。系统性地讲解与点穴式的训练,孰优孰劣,我想还是因人而异吧。

  • 7
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
笨办法Python3》是一本教授Python编程基础的书籍,它分为七个部分,分别是打印输入、文件操作、函数、数据容器与程序结构、面向对象的类、项目骨架与自动测试以及搭建简易的网站。这本书通过一系列的练习和示例,帮助读者逐步Python的基本语法和编程概念。 在第一部分《打印输入》中,你将习如何使用print函数打印输出内容,以及如何使用input函数获取用户的输入。 在第二部分《文件操作》中,你将习如何打开、读取和写入文件,以及如何处理文件中的数据。 在第三部分《函数》中,你将习如何定义和调用函数,以及如何传递参数和返回值。 在第四部分《数据容器与程序结构》中,你将习如何使用列表、字典和元组等数据容器,以及如何使用条件语句和循环结构控制程序的执行流程。 在第五部分《面向对象的类》中,你将习面向对象编程的基本概念,包括类的定义、对象的创建和方法的调用。 在第六部分《项目骨架与自动测试》中,你将习如何使用项目骨架来组织你的代码,并习如何编写自动化测试来验证代码的正确性。 在第七部分《搭建简易的网站》中,你将习如何使用Python搭建一个简单的网站,并习一些与网站开发相关的知识。 通过《笨办法Python3》,你可以系统地Python编程的基础知识,并通过练习提升自己的编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值