![数据结构与算法(Python版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/974/41864974/b_41864974.jpg)
4.2 顺序结构
顺序结构的语句主要是赋值语句、输入与输出语句等,其特点是程序沿着一个方向进行,具有唯一的入口和出口。如图4.1所示,顺序结构只有先执行完语句1,才会执行语句2,语句1将输入数值处理后,其输出结果作为语句2的输入。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_62_01.jpg?sign=1739282651-NxpC96QC4hGyi4A8iUxqW5Z9vuBUbtG4-0-197552092e831421e6baf98e525b2826)
图4.1 顺序结构图
4.2.1 输入、处理和输出
输入包括变量赋值和输入语句;处理也就是改变输入;输出包括打印改变的输入,将结果写入文件和数据库等。Python提供input()、eval()和print()等基本输入、输出函数。
(1)input()函数
Python提供input()函数实现数据输入。
【例4-1】input()函数举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_63_01.jpg?sign=1739282651-dV19voHCzDejxRiNiCkgEKJruXizdLUH-0-83d5b6d5cc9aaa335f58665b00014121)
(2)eval()函数
eval()函数用来执行一个字符串表达式,并返回表达式的值。
【例4-2】eval()函数举例。
1)字符串转换成列表。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_63_02.jpg?sign=1739282651-tbTvQ1wxymKa5SYtcLjU0ZV1sjGoF1Fn-0-699594225298cc0f3e60ce179d4848f4)
2)字符串转换成字典。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_63_03.jpg?sign=1739282651-lx1STrc2c3joUBTuvYjIFMEnFHhiUXr1-0-53e28bc09adba2bd5265e6e4f7f18429)
3)字符串转换成元组。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_64_01.jpg?sign=1739282651-Do3qJz4qSJx7MOe4YbN9Qib6AZUo76nT-0-9d8ab99f303f58bb0bcb438bdfe7620b)
(3)print()函数
Python 3中,数据输出的操作是通过print()函数实现的,操作对象是字符串。
print函数的语法结构如下所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_64_02.jpg?sign=1739282651-sw84w5JYecQ79TEejHGLbuCxCPR4xDpB-0-ad69cafa23e4386b6b3e7143a756c923)
说明:输出项之间用逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认以空格分隔),end表示输出结束符(默认以回车换行结束)。
【例4-3】print()函数举例。
在一个.py文件中保存如下两句语句,运行结果换行。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_64_03.jpg?sign=1739282651-8Pn0Hme4U5zMN0eCNOkM5zKhf4yZ6mq8-0-52c6d45cca9f27d18faa96f94bd25987)
输出如下。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_64_04.jpg?sign=1739282651-xDEIKLjl0lTQSlLtn2WlaZpaHU0Zwitt-0-00c2b80f3b3dc4659d09da5286849a9f)
在一个.py文件中保存如下两句语句,运行结果不换行。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_64_05.jpg?sign=1739282651-OHBwdVUOMJJxh8txYoas4yIG3B39OD1D-0-611c976a11c824b5b29108b564f7c7d2)
输出如下。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_64_06.jpg?sign=1739282651-6yM5ZgiKVj2tPzssgrbBpfSDXRbFHz2B-0-d3bab68734918a7be66acee8f3320ea1)
注意:
1)在python命令行下,print是可以省略的,默认就会输出每一次命令的结果。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_64_07.jpg?sign=1739282651-tQyLhcsBBVZbekWpRDlkJAsJVnM0m5TT-0-d2ed1cc4d5be8d0d6c2c562e58c8d224)
2)多个输出项间用逗号间隔。print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_64_08.jpg?sign=1739282651-tfVs3DAnirASIQbCLIiJTIFuMla7vG2C-0-d6abaa2c041036c8b3004d54356c88f5)
3)格式化控制输出,具有格式符(%)和format()函数两种方式,如下所述。
方式1:使用格式符(%)来实现,格式符输出如表4.1所示。
表4.1 格式化控制输出
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_65_01.jpg?sign=1739282651-O7xeuFzoJ4mwd6rFwFVtnWFKqoknN7wq-0-5d837b9eee05184ae6cc11c7c387119c)
【例4-4】格式符(%)输出举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_65_02.jpg?sign=1739282651-GENOHrrJ5CZ0Q0rXw2tWS4Exq1yv8h2E-0-9068713e80509ff1a4019eb47502e3ff)
方式2:使用format()函数来实现,str.format()实现格式化输出。
【例4-5】format()函数举例。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_65_03.jpg?sign=1739282651-eaiv9iRUqdGAT85IAZ7Q0mVFuqiqv9PM-0-44fb93d39b16bb0bddc18664c472f504)
{}括号及其里面的字符(称作格式化字段)将会被format()中的参数替换。括号中的数字用于指向传入对象在format()中的位置,如下所示。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_65_04.jpg?sign=1739282651-UXc9jB1RImQRn1ABfgHVTIfvE4oDLoks-0-2b3a112d4b2156fb986558933e630e03)
在format()中使用了关键字参数,其值会指向使用该名字的参数。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_65_05.jpg?sign=1739282651-8aFKgVlNnNEZljiM85DsS0lzzYW3rcyx-0-15d9d69dfc19f6909b47d0841e7e478f)
在':'后传入一个整数,可以设置该域的宽度,美化表格时很有用。
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_65_06.jpg?sign=1739282651-sbxQX2tjEbQKeiiKhwhC7Utit4CBSaYp-0-721f37e78a2a21d7e2a55bda57b62a1b)
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_66_01.jpg?sign=1739282651-jeHCDGjVTKK1mVmbqMsNdAnRIQSZNsQH-0-32d0bbd819bc4318ce19385f8a76ce81)
4.2.2 顺序程序设计举例
【例4-6】从键盘输入一个3位整数,分离出它的个位、十位和百位并输出。
【代码】
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_66_02.jpg?sign=1739282651-zDxqWB5NsyQMadqr6tOtBgtAYNvNcZz5-0-4f178754f21c6fafd912caee81cd1f2d)
【程序运行结果】
![](https://epubservercos.yuewen.com/3C8452/21889219301185006/epubprivate/OEBPS/Images/978-7-111-66363-8_66_03.jpg?sign=1739282651-5QHbtTLD7B9sKwQkzJ4TFLsVZof9YWKf-0-0960376b42909bcc904bd1e3f1057495)