[TOC]
### 输出
用`print()`在括号中加上字符串,就可以向屏幕上输出指定的文字。比如输出`'hello, world'`,用代码实现如下:
```
>>> print('hello, world')
```
`print()`函数也可以接受多个字符串,用逗号`“,”`隔开,就可以连成一串输出:
```
>>> print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog
```
`print()`会依次打印每个字符串,遇到逗号`“,”`会输出一个空格,因此,输出的字符串是这样拼起来的:
![image](http://www.liaoxuefeng.com/files/attachments/001431643506965540b8016b45c4d27b84c734543f78840000/l)
`print()`也可以打印整数,或者计算结果:
```
>>> print(300)
300
>>> print(100 + 200)
300
```
因此,我们可以把计算`100 + 200`的结果打印得更漂亮一点:
```
>>> print('100 + 200 =', 100 + 200)
100 + 200 = 300
```
注意,对于```100 + 200```,Python解释器自动计算出结果```300```,但是,```'100 + 200 ='```是字符串而非数学公式,Python把它视为字符串,请自行解释上述打印结果。
### 输入
现在,你已经可以用```print()```输出你想要的结果了。但是,如果要让用户从电脑输入一些字符怎么办?Python提供了一个```input()```,可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
```
>>> name = input()
Michael
```
当你输入```name = input()```并按下回车后,Python交互式命令行就在等待你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。
输入完成后,不会有任何提示,Python交互式命令行又回到```>>>```状态了。那我们刚才输入的内容到哪去了?答案是存放到name变量里了。可以直接输入name查看变量内容:
```
>>> name
'Michael'
```
#### 什么是变量?
什么是变量?请回忆初中数学所学的代数基础知识:
设正方形的边长为`a`,则正方形的面积为`a x a`。把边长`a`看做一个变量,我们就可以根据`a`的值计算正方形的面积,比如:
- 若`a=2`,则面积为`a x a = 2 x 2 = 4;`
- 若`a=3.5`,则面积为`a x a = 3.5 x 3.5 = 12.25。`
在计算机程序中,变量不仅可以为整数或浮点数,还可以是字符串,因此,name作为一个变量就是一个字符串。
要打印出```name```变量的内容,除了直接写```name```然后按回车外,还可以用```print()```函数:
```
>>> print(name)
Michael
```
#### 使用输入和输出
有了输入和输出,我们就可以把上次打印```'hello, world'```的程序改成有点意义的程序了:
```
name = input()
print('hello,', name)
```
运行上面的程序,第一行代码会让用户输入任意字符作为自己的名字,然后存入name变量中;第二行代码会根据用户的名字向用户说hello,比如输入Michael:
```
C:\Workspace> python hello.py
Michael
hello, Michael
```
但是程序运行的时候,没有任何提示信息告诉用户:“嘿,赶紧输入你的名字”,这样显得很不友好。幸好,```input()```可以让你显示一个字符串来提示用户,于是我们把代码改成:
```
name = input('please enter your name: ')
print('hello,', name)
```
再次运行这个程序,你会发现,程序一运行,会首先打印出```please enter your name:```,这样,用户就可以根据提示,输入名字后,得到```hello, xxx```的输出:
```
C:\Workspace> python hello.py
please enter your name: Michael
hello, Michael
```
每次运行该程序,根据用户输入的不同,输出结果也会不同。
在命令行下,输入和输出就是这么简单。
### 小结
#### 计算机程序
任何计算机程序都是为了执行一个特定的任务,有了输入,用户才能告诉计算机程序所需的信息,有了输出,程序运行后才能告诉用户任务的结果。
#### 输入输出
输入是`Input`,输出是`Output`,因此,我们把输入输出统称为`Input/Output`,或者简写为`IO`。
#### `input()`和`print()`
`input()`和`print()`是在命令行下面最基本的输入和输出,但是,用户也可以通过其他更高级的图形界面完成输入和输出,比如,在网页上的一个文本框输入自己的名字,点击“确定”后在网页上看到输出信息。
### 练习
#### 方式一:通过代码运行助手
使用电脑运行 learning.py(附录有源码)然后登录(http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431643484137e38b44e5925440ec8b1e4c70f800b4e2000)来进行练习
#### 方式二:利用文本编辑器(推荐)
使用你的编辑器来输入,然后测试(这样更加方便)。
#### 题目:请利用print()输出1024 * 768 = xxx:
### 练习参考源码:
```
print(1024*768)
786432
```
- Python教程
- Python简介
- 安装Python
- Python解释器
- 第一个 Python 程序
- 使用文本编辑器
- Python代码运行助手
- 输入和输出
- 源码
- learning.py
- Python基础
- 数据类型和变量
- 字符串和编码
- 使用list和tuple
- 条件判断
- 循环
- 使用dict和set
- 函数
- 调用函数
- 定义函数
- 函数的参数
- 递归函数
- 高级特性
- 切片
- 迭代
- 列表生成式
- 生成器
- 迭代器
- 函数式编程
- 高阶函数
- map/reduce
- filter
- sorted
- 返回函数
- 匿名函数
- 装饰器
- 偏函数
- Python函数式编程——偏函数(来自博客)
- 模块
- 使用模块
- 安装第三方模块
- 面向对象编程
- 类和实例
- 访问限制
- 继承和多态
- 获取对象信息
- 实例属性和类属性
- 面向对象高级编程
- 使用__slots__
- 使用@property
- 多重继承
- 定制类
- 使用枚举类
- 使用元类
- 错误、调试和测试
- 错误处理
- 调试
- 单元测试
- 文档测试
- IO编程
- 文件读写
- StringIO和BytesIO
- 操作文件和目录
- 序列化
- 进程和线程
- 多进程
- 多线程
- ThreadLocal
- 进程 vs. 线程
- 分布式进程
- 正则表达式
- 常用内建模块
- datetime
- collections
- base64
- struct
- hashlib
- itertools
- contextlib
- XML
- HTMLParser
- urllib
- 常用第三方模块
- PIL
- virtualenv
- 图形界面
- 网络编程
- TCP/IP简介
- TCP编程
- UDP编程
- 电子邮件
- SMTP发送邮件
- POP3收取邮件
- 访问数据库
- 使用SQLite
- 使用MySQL
- 使用SQLAlchemy
- Web开发
- HTTP协议简介
- HTML简介
- WSGI接口
- 使用Web框架
- 使用模板
- 异步IO
- 协程
- asyncio
- async/await
- aiohttp
- 实战
- Day 1 - 搭建开发环境
- Day 2 - 编写Web App骨架
- Day 3 - 编写ORM
- Day 4 - 编写Model
- Day 5 - 编写Web框架
- Day 6 - 编写配置文件
- Day 7 - 编写MVC
- Day 8 - 构建前端
- Day 9 - 编写API
- Day 10 - 用户注册和登录
- Day 11 - 编写日志创建页
- Day 12 - 编写日志列表页
- Day 13 - 提升开发效率
- Day 14 - 完成Web App
- Day 15 - 部署Web App
- Day 16 - 编写移动App
- FAQ
- 期末总结