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 相等,并且TrueFalse能参与到数字类型的运算当中。
  • 字符串类型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跳出循环,结束程序的执行。

所以本道题目完整的代码如下:

温馨提示: 一定要自己手敲,不要复制粘贴,只有实践才能加深印象

# while True表示循环
while True:
# 尝试执行这里的程序,遇到异常时执行except中的程序
try:
# 将输入的字符串分割成字符列表
data = input().split()
# 取得第一位和第二位元素后将之转为int类型,并相加
res = int(data[0])+int(data[1])
# 打印结果res
print(res)
except:
# 遇到异常时,退出循环
break

扩展:多重赋值

除了a = 10这种赋值方式外,Python还允许同时为多个变量进行赋值操作,这称为多重赋值,具体有以下几种。

# 1. 多个变量同时赋相同的值
a = b = c = 42 # 变量 a、b 和 c都被赋予了相同的值 # 2. 多个变量同时赋不同的值
x, y, z = 1, 2, 3 # 变量 x 被赋值为1,变量 y 被赋值为2,变量 z 被赋值为3 # 3. 还可以使用多重赋值获取列表中的值。
a, b = [1, 2] # 将列表中的元素按照顺序赋给 a 和 b,a 的值为 1,b 的值为 2。

扩展:模块

虽然我们现在只写了几行代码,但是以后我们会面对上千甚至上万行代码,为了方便组织和管理,这些代码要分属不同的模块,就像图书馆里的书要分不同的类一样。在Python工程化开发中,我们会建立很多个python文件,后缀名为.py(就像一个个word文件一样),从而将一个完整的程序分解为一个一个小的模块(一个python文件就是一个模块),通过将模块组合和复用,从而搭建出一个完整的程序。

而且,Python中有许多内置的模块,比如math、sys等,这些模块提供了一些内置功能方便使用,比如math模块就提供了许多有用的数学运算。

需要注意的是,使用模块前,要使用import语句来导入:

一般情况下,import语句都会统一写在程序的开头,而每一个模块内部都有一个__name__属性,通过这个属性可以获取到模块的名字。

# 导入math模块
import math
# 使用模块中的定义的变量或者函数的语法格式为:模块.变量/函数
print(math.sqrt(25)) # 使用math模块中的sqrt函数, 表示开平方根

或者你还可以使用from语句导入模块中的特定函数、变量,然后直接使用。

# 从 math 模块中 导入 sqrt
from math import sqrt
print(sqrt(25)) # 直接使用sqrt函数,不用在前面加上 math

扩展:主模块

在Python中,主模块是执行Python程序的入口点, 一个程序只会有一个主模块,主模块的名称是__main__, 它的书写有一个固定的格式:

这里只是对主模块做了简短的介绍,目前你只需要知道主模块是程序的入口并且知道如何书写主模块即可。

# 表示这是主模块
if __name__ == "__main__":
# 主模块程序

总结

本文引用了博主”代码随想录“的部分文章,可以关注关注原作者:代码随想录

作为一个 Python 语言的初学者,本节课我们使用 Python 程序解决了A+B问题,在这个过程中我们了解了输入、输出、变量、数据类型、循环、多重赋值、模块等基础概念,并能使用循环控制多组数据的输入和输出,这是一个良好的开始,下节课,我们会对循环做一个重新解释,相信你对本节课的一些疑问在下节内容中会得到解答。

Python入门:A+B问题的更多相关文章

  1. python入门简介

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...

  2. python入门学习课程推荐

    最近在学习自动化,学习过程中,越来越发现coding能力的重要性,不会coding,基本不能开展自动化测试(自动化工具只是辅助). 故:痛定思痛,先花2个星期将python基础知识学习后,再进入自动化 ...

  3. Python运算符,python入门到精通[五]

    运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.例如:2+3,其操作数是2和3,而运算符则是“+”.在计算器语言中运算符大致可以分为5种类型:算术运算符.连接运算符.关系运算符.赋值运 ...

  4. Python基本语法[二],python入门到精通[四]

    在上一篇博客Python基本语法,python入门到精通[二]已经为大家简单介绍了一下python的基本语法,上一篇博客的基本语法只是一个预览版的,目的是让大家对python的基本语法有个大概的了解. ...

  5. Python基本语法,python入门到精通[二]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]我们已经在自己的windows电脑上搭建好了python的开发环境,这篇博客呢我就开始学习一下Python的基本语法.现 ...

  6. visual studio 2015 搭建python开发环境,python入门到精通[三]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...

  7. python入门教程链接

    python安装 选择 2.7及以上版本 linux: 一般都自带 windows: https://www.python.org/downloads/windows/ mac os: https:/ ...

  8. Python学习【第二篇】Python入门

    Python入门 Hello World程序 在linux下创建一个叫hello.py,并输入 print("Hello World!") 然后执行命令:python hello. ...

  9. python入门练习题1

    常见python入门练习题 1.执行python脚本的两种方法 第一种:给python脚本一个可执行的权限,进入到当前存放python程序的目录,给一个x可执行权限,如:有一个homework.py文 ...

  10. Python入门版

    一.前言 陆陆续续学习Python已经近半年时间了,感觉到Python的强大之外,也深刻体会到Python的艺术.哲学.曾经的约定,到现在才兑现,其中不乏有很多懈怠,狼狈. Python入门关于Pyt ...

随机推荐

  1. 【Hibernate】Re01.5 API

    1.Session单表的CRUD操作 1.增加或者修改,使用同一个方法,或者下面的两个也行: 感觉多此一举... 2.删除方法,硬删除: 3.获取方法提供了两种,Get & Load get方 ...

  2. (持续更新)国内计算机领域相关的SCI和EI期刊,以及好中的SCI和EI期刊(不限国内外)

    好中的: SCI刊: EI刊: EI会议: 参考: CCF发布计算领域高质量科技期刊分级目录   国内的: SCI-Expanded   1. <Journal of Computer Scie ...

  3. NVIDIA显卡cuda的多进程服务——MPS(Multi-Process Service)

    相关内容: tensorflow1.x--如何在C++多线程中调用同一个session会话 tensorflow1.x--如何在python多线程中调用同一个session会话 参考: https:/ ...

  4. hibernate validation,spring validation自定义参数校验

    1.背景 在实际开发中,我们除了会使用常用的参数判断,如字符串不为空,最大值,最小值等 我们还可以自定义参数校验规则 2.实际生产问题 实际生产中同步订单的时候, 假设我们要求订单状态值只能是 -1, ...

  5. UE Websocket 通信

    项目中遇到UE需要对接Websocket协议接收实时数据. 所以需要实现一个Websocket Client的功能. 由于UE引擎已经集成了Websocket库(基于libwebsocket),可以通 ...

  6. [学习笔记] 单调队列优化DP - DP

    单调队列优化DP 简单好想的DP优化 真正的教育是把学过的知识忘掉后剩下的东西 -- *** 对于一个转移方程类似于 \(dp[i]=max(min)\{dp[j]+b[j]+a[i]\}\ \ x_ ...

  7. freertos学习(九)软件定时器

    软件定时器 软件定时器是freeRTOS通过一个硬件定时器,实现的定时器.可以实现不同时长的多个定时任务 不从中断上下文中执行定时器回调函数(不消耗任何处理时间) 实现流程 设置软件定时器,推入定时器 ...

  8. vue自定义组件的点击事件失效

    在vue开发过程中为了减少重复代码,很多时候都需要将重复的部分写成一个组件,方便调用.但是使用组件时很可能又会给该组件添加点击事件.如果直接这样写,事件则会失效: 正确写法应该是这样:

  9. .net7(.net core) 依赖注入:从 AddSingleton 注册的类里面访问 AddScoped 的问题

    记录一下以免忘记. 今天从NopCommerce开源项目里面把它的任务调度类拆出来到我的项目用的时候,发现报错,报错信息如下 Some services are not able to be cons ...

  10. 【YashanDB知识库】swap空间使用超大报错

    问题描述 问题单 使用GROUP_CONCAT函数时,数据库swap表空间上涨厉害 测试用例 drop table tmp1; create table tmp1(c1 int,c2 double,c ...