1. A + B 问题I
前言
本篇作为课程第一篇,主要是对Python基础语法进行扫盲,本节课会学习到下面知识:
输入
本道题目的工作任务很简单,只是计算两个数的和,但是在计算之前,我们首先要明确的一个问题就是如何把这两个数据输入到计算机中,并由程序读取呢?
输入当然是使用键盘之类的输入设备完成,这也意味着有一段程序读取了我们的两个输入,而在Python中,这个获取输入的操作由内置的函数input()
来完成。
变量
解决了输入问题之后,我们还有另一个问题需要解决,那就是:系统怎么认识和标识我们输入的数字呢?比如说,我们想要输入两个数字100、100,电脑系统内部如果使用100来标识100,那另外一个100应该怎么标识呢?
所以就需要在系统内部使用某样东西来指代和标识输入的内容,比如x = 100、 y = 100
, 用 x 指代100,用 y 指代另一个100,这里的x, y
在数学中被称为变量,在编程中也被称为变量,用来指代内容。
不过在数学中有整数、小数之分,此外我们还经常输入一段文本数据,那计算机在存储的时候也应该知道我们输入的 x 是一个什么类型的数字或者文本,这就是我们要讲的数据类型。
数据类型
Python中有一些常见的基础数据类型:这里我们先进行简单的介绍,你现在只需知道这些类型是什么意思即可。
- 数字类型:用于表示数字,包括整数和浮点数两种类型。
- 整数类型
int
:即我们常用的整数值,比如 - 1、0 、1就是整数。 - 浮点数类型
float
: 用于表示带有小数点的数值,比如3.14、2.0。
- 整数类型
- 布尔值类型
bool
:用于表示逻辑值真和假,即计算机世界中的0和1,True表示真,False表示假, 同时,True
也和 1相等,False
也和 0 相等,并且True
和False
能参与到数字类型的运算当中。 - 字符串类型
string
:Python中的字符串使用单引号''
或者双引号""
扩起来,表示一段文本数据,比如字符串"hello"
、"你好"。
变量赋值
不过空有变量而没有值可不行,Python中的变量不需要提前声明,但是在使用前必须赋值,变量只有赋值才会被创建,在数学中,我们通过等于符号=
来判定两个数字是否相等,比如1 = 3
, 2 = 5
来判断, 但是在编程中,一个=
往往意味着把右边的值赋值给左边的意思,比如i = 3
,就是将 值 3 赋值给左侧的 i
赋值的过程是关联的过程,就像“连连看”一样,把“值”和“变量”连在一起。
name = "张三" # 表示把 右侧的值 "张三"字符串赋值给左侧的 变量 name
age = 22 # 表示把 右侧的值 22 赋值给左侧的 变量 age
height = 1.68 # 定义一个浮点数,赋值给左侧的 变量 height
而且Python是一种动态类型语言,这意味着变量的数据类型可以随着分配给它们的值而改变。
x = 22 # x是一个整数
x = "张三" # x现在是一个字符串
在上面的代码中,x
首先被赋值为整数 22,然后再次赋值为字符串"张三",变量 x
的数据类型也随之改变。
在了解了变量赋值和input()
的概念之后,我们就可以开始写输入的代码了。
# input()接收输入的内容,然后与变量 user_input 相关联
user_input = input()
上面的代码就表示把用户输入的数据存放到变量 user_input
里,比如用户输入了一串文字"hello world"(以回车键结束),就把文字字符串的内容存到user_input
里, 需要注意的是input
接收的总是一个字符串,哪怕你输入了数字,比如你输入了123,但是user_input
接收的是"123"
字符串123,但没关系,你可以使用类型转换int()
将之转换成整数。
# int()将input()接收的字符串转换成整数
user_input = int(input()) # 输入整数3, input()接收的内容是 "3", int("3")转为整数3
此外,你还可以在input
里面填充一些信息,作为用户输入的提示:
user_input = input("请输入一些文本: ")
上面的代码会在终端中显示 "请输入一些文本: ",然后等待用户的输入。之后输入的内容会被存储在 user_input
变量中。
输出
在Python中,输出也非常的简单,只需要使用print()
,在()
内填充需要输出的内容,内容就会显示在屏幕(终端)上。
# 输出1
print(1)
# 不会显示 1 + 2, Python会先自动计算出结果再显示,显示结果为3
print(1 + 2)
print()
函数可以和input()
函数结合起来,实现和用户的交互。
name = input("请输入您的名字: ") # 提示用户输入名字
print(name) # 在屏幕上输出你之前输入的内容
计算 a + b
假设我们现在只有一组数据,即你只需要输入一个 a 和 一个 b, a 和 b 之间通过空格隔开,如何计算这两个数的值呢?
首先应该使用input()
接收用户的一行输入
data = input()
不过input()
遇到空格可不会停止接收输入,并且输入的是字符串。
假设你输入了3 和 4,即如下的输入。
3 4
此时 data 数据接受的却是字符串"3 4"
。
那我们就需要想办法把 3 和 4 拆开,好在字符串提供了这样的方法split
供我们使用
# input()表示输入的内容,input().split()表示将输入的内容根据空格拆分。
data = input().split()
split
方法用于将一个字符串分割成多个小的子字符串,并返回一个列表(下节课中我们会讲到这种数据类型),列表包含分割后的子字符串。默认情况下,split()
方法使用空格字符作为分隔符,将字符串分成单词。你也可以指定自定义的分隔符作为参数。
persons = "Mike Jerry Tom"
result = persons.split() # 将字符串使用默认分隔符(空格)拆分成多个小的子字符串
print(result) # 输出: ['Mike', 'Jerry', 'Tom']
persons = "Mike,Jerry,Tom"
result = persons.split(",") # 将字符串使用 "," 拆分成多个小的子字符串
print(result) # 输出: ['Mike', 'Jerry', 'Tom']
总之,split()
的作用就是将一串长的字符串通过分割符号进行分割,分割成一个个小的字符串, 如果是"3 4"
按照空格进行分割,会分割成["3", "4"]
。
之前我们提到过,可以通过数据类型转换int()
,将"3"转换成整数3, 那接下来的问题就是如何拿到 "3" 和 "4"呢?
列表通过索引[]
进行访问,并且索引从0开始,索引0表示第一个元素,索引1表示第二个元素,即通过data[0]
和data[1]
可以分别拿到第一个元素"3"和第二个元素"4"。
# data[0]表示第一个元素,int()进行数据类型转换,转换成整数类型
# data[1]表示第二个元素,int()进行数据类型转换,转换成整数类型
# res = int(data[0]) + int(data[1]) 表示两个数据进行相加, 最后赋值给res
res = int(data[0]) + int(data[1])
再将res
输出即可,完整的代码如下
data = input().split() # 将输入字符串根据空格进行分割,得到数据列表
res = int(data[0])+int(data[1]) # 拿到元素后,进行数据类型转换,累加后赋值给变量res
print(res)
循环输入和输出
上面的代码虽然完成了 A+B 的输入、计算和输出问题,但是并不能满足多组数据的计算要求,这需要学习新的概念“循环”。
while
循环是一种在满足特定条件时重复执行代码块的控制结构,你可以通过设置while
循环的条件部分为真(布尔值True
), 这样,循环将一直执行,直到你使用break
语句来终止循环。
请注意:Python对于程序的缩进非常敏感,它使用缩进来表示代码块的范围,而不是大括号
{}
, 在同一个代码块中,所有代码行的缩进级别必须相同,这需要格外注意。
while True:
data = input().split()
res = int(data[0])+int(data[1])
print(res)
在while True
的控制下,执行输入、计算、输出的三行代码会持续不断的运行,你输入一行数据,程序就处理一行数据,但是数据的输入是不会一直进行下去的,当输入结束时,循环也应该终止掉。
这可以使用try代码块
来进行处理,try
中的代码会被尝试执行,如果没有发生错误,则正常执行,用户停止输入后,输入的内容不能正确地分割成两个整数,或者其他可能的错误发生,就会引起程序异常,这时就会由except
捕获异常并执行异常处理代码
while True:
try:
# 尝试执行这里的程序
except:
# 捕获异常,执行异常处理代码
break
这里的break
是一个在循环内部使用的语句,用于终止当前循环并继续执行循环之后的代码,通常用于在循环中的某个条件得到满足时,提前结束循环,这里使用break
跳出循环,结束程序的执行。
所以本道题目完整的代码如下:
标签:入门,Python,问题,int,模块,input,data,输入,赋值 From: https://www.cnblogs.com/Tomorrowland/p/18470345