跟着NOAI考纲学Python,学完就能考,第3课

跟着NOAI考纲学Python,学完就能考,第3课

本文核心观点
NOAI 自学 Python 系列第 3 课:input() 读取用户输入、算术运算符、比较运算符、运算优先级。

跟着NOAI考纲学Python,学完就能考,第3课

每天一个知识点,带你自学NOAI,加入我们吧~

前两课电脑学会了说话、记东西。这节课,让电脑跟你互动,还能帮你算数。

input():让电脑听你说话

之前我们用print()让电脑"说话"。现在反过来——用input()让电脑等你输入

name = input("你叫什么名字?")
print("你好," + name)

运行后,电脑会先显示"你叫什么名字?",然后停下来等你打字。你输入"小明"按回车,它就输出:

你叫什么名字?小明
你好,小明

拆开看:

input("提示语") 会在屏幕上显示提示语,然后等你输入

你输入的内容会被存进左边的变量里

"你好," + name 是字符串拼接,把两段文字连在一起

input()拿到的永远是字符串,不管你输入的是文字还是数字。这一点非常重要,后面会讲到。

算术运算:让电脑帮你算数

Python可以直接当计算器用。先看最常用的四种运算:

print(10 + 3)    # 13   加法
print(10 - 3)    # 7    减法
print(10 * 3)    # 30   乘法
print(10 / 3)    # 3.333...  除法

注意:Python里的除法结果永远是浮点数,即使能整除也一样。10 / 2 的结果是 5.0,不是 5

还有三种运算,NOAI考试经常考:

//整除 — 只取商的整数部分,小数直接丢掉

print(10 // 3)   # 3    商是3余1,只取3
print(7 // 2)    # 3    商是3余1,只取3

%取余 — 只取除法的余数

print(10 % 3)    # 1    10除以3余1
print(7 % 2)     # 1    7除以2余1

取余有个常见用法:判断奇偶。一个数 % 2 结果是0就是偶数,结果是1就是奇数。

**乘方 — 几个相同的数连乘

print(2 ** 3)    # 8    2的3次方 = 2×2×2
print(3 ** 2)    # 9    3的2次方 = 3×3

运算优先级

跟数学课一样:先乘除,后加减。想改顺序就加括号。

print(2 + 3 * 4)      # 14   先算3×4=12,再加2
print((2 + 3) * 4)    # 20   括号里先算,2+3=5,再乘4

拿不准优先级的时候,加括号就完事了。括号永远最先算。

新手最容易栽的坑:input + 运算

来看一段代码:

a = input("请输入一个数字:")
print(a + a)

你输入5,期待输出10。但实际输出是:

55

为什么?因为input()拿到的是字符串"5",不是数字5。字符串的+是拼接,"5"+"5"="55"。

要做数学运算,必须先把字符串转成数字

a = input("请输入一个数字:")
a = int(a)           # 把字符串转成整数
print(a + a)         # 现在是数字相加了

请输入一个数字:5
10

也可以一步到位,把input和int写在一起:

a = int(input("请输入一个数字:"))

两种转换函数:

int() — 转成整数。int("5") 得到 5

float() — 转成浮点数。float("3.14") 得到 3.14

注意:int("3.14") 会报错!带小数点的字符串要先用float()转。
反过来,int(3.14) 没问题,结果是 3,直接砍掉小数部分。

实战:写一个简单计算器

把input和运算结合起来,就能写出有用的小程序了:

# 计算长方形的面积
length = int(input("请输入长:"))
width = int(input("请输入宽:"))
area = length * width
print("面积是:" + str(area))

请输入长:5
请输入宽:3
面积是:15

最后一行的str()是把数字转回字符串。因为字符串和数字不能直接用+拼接,必须先把数字转成字符串。

动手试试

练习1:预测输出

下面这段代码,输入10和3,输出什么?

a = int(input())
b = int(input())
print(a // b)
print(a % b)

提示://取商,%取余。10除以3,商几余几?

练习2:找bug

下面这段代码想计算两个数的和,但运行后输入1和2,输出的是"12"而不是"3"。哪里出了问题?

a = input("第一个数:")
b = input("第二个数:")
print(a + b)

提示:回看前面"最容易栽的坑"那一节。

练习3:写代码

写一个程序:输入一个秒数(比如90),输出它等于几分几秒(1分30秒)。

提示:分钟数 = 总秒数 // 60,剩余秒数 = 总秒数 % 60。

自己先想,想完了香农平台上写代码跑一遍验证。

去平台上手写代码

今天学了三个东西:

input() — 让电脑接收你的输入

七种算术运算符 — + - * / // % **

类型转换 — int()、float()、str(),在字符串和数字之间来回切换

这篇文章讲的是香农NOAI学习平台"Python基础"模块的第三课。平台上有更多的练习题,写完代码点运行,对不对立刻就知道。

香农NOAI学习平台
地址:shannon.arpa.school
微信扫码登录就能用,免费。
找到「Python基础」→「输入和运算」,从第一道题开始写。

下一篇讲条件判断——让电脑学会"看情况办事",不同的输入做不同的事。

微信二维码

扫码备注【NOAI】加交流群