【卡码网Python基础课(A+B问题2)】



题目描述与分析

1.描述

题目描述:计算a+b,但输入方式有所改变。

输入描述:第一行是一个整数N,表示后面会有N行a和b,通过空格隔开。

输出描述:对于输入的每对a和b,你需要在相应的行输出a、b的和。
如第二对a和b,对应的和也输出在第二行。

2.分析

与问题1相比,多输入一个整数n来控制a,b的次数,既然是持续性输入,说明要在循环中输入n这个操作,需要上一节使用的while

连续输入n的代码如下:

while True:
    try:
        # 将输入的 N 转换成整数
        N = int(input())
    except:
        break

一、列表

1.列表的定义

在Python中,列表(List)是一种非常灵活的数据结构,用于存储一系列有序的元素。列表中的元素可以是不同的数据类型(如整数、字符串、对象等),并且列表的大小(即其中元素的数量)是可以变化的。列表是可变的,这意味着你可以在创建列表之后添加、移除或更改其元素。

2.列表的创建和使用

创建一个列表很简单,你只需要把元素放在方括号[]中,用逗号分隔开。这里有一些基本的操作示例:

# 创建列表
my_list = [1, 2, 3, 'Python', [4, 5]]

# 访问列表元素
print(my_list[0])  # 输出第一个元素: 1
print(my_list[-1]) # 输出最后一个元素,即另一个列表: [4, 5]

# 修改列表元素
my_list[1] = 'changed'
print(my_list)  # 输出: [1, 'changed', 3, 'Python', [4, 5]]

# 添加元素
my_list.append('new element')
print(my_list)  # 输出: [1, 'changed', 3, 'Python', [4, 5], 'new element']

# 删除元素
del my_list[1]
print(my_list)  # 输出: [1, 3, 'Python', [4, 5], 'new element']

二、for循环

当输入为n时,表示后面有n行 a 和 b 的输入,这也意味着循环只需要执行n次,在编程中可以使用for循环来解决这一问题。

在Python中,for 循环是一种常用的迭代结构,用于遍历序列(如列表、元组、字符串等)或其他可迭代对象(如字典、文件等)。使用 for 循环可以执行一组语句多次,每次迭代都更新循环变量的值。

1.基本语法

for 循环遍历一个列表中的元素,并执行循环中的代码块,其语法格式如下:

for item in list:
    # 循环体

这里的list就是一个列表,而item是一个循环变量,表示每次循环时的值。

fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:
    print(fruit)

分析一下for遍历列表的流程:
遍历列表的第一个元素,此时fruit为"apple", 打印 fruit
遍历列表的第二个元素,此时fruit为"banana", 打印 fruit

遍历列表的最后一个元素,此时fruit为"cherry", 打印 fruit
循环结束

2.for循环遍历字符串

除了列表,for循环还能用来遍历字符串。

word = 'hello'
# 遍历字符串,letter表示字符串中的每一个字符
for letter in word:
    print(letter)

range() 函数常与 for 循环结合使用,用于生成一个数值序列。

range()函数有以下三种用法:

range(stop)
range(start, stop)
range(start, stop, step)

range(stop): 传入一个数字,会生成 0 - stop(不包括 stop)的一系列数字,比如传入数字 5, 就会生成数字 0 ~ 4。
range(start, stop): 传入两个数字,start表示序列的起始值,默认从 0 开始,生成 start ~ stop(不包括stop)的一系列数字
range(start, stop, step): 传入三个数字,step表示步长,用于控制生成的整数之间的间隔,默认为1。

# 只指定 stop, 生成 0 - 4的数字
for i in range(5):
    print(i)

# 指定start, stop, 生成 2 - 5的数字
for i in range(2, 6):
    print(i)

# 指定起始值、终止值和步长, 生成 1 3 5 7 9
for i in range(1, 10, 2):
    print(i)

因此,当已经获取整数 N 之后,想要让程序 执行 N 次,可以使用如下代码:

N = int(input())
# range(N)生成 0 - N-1之间的序列,共 N 个,循环执行N次
# _表示一个占位符,表示循环的迭代变量不会在循环内部使用。
for _ in range(N):
    data = input().split()
    res = int(data[0]) + int(data[1])
    print(int(res)

获取列表值的过程可以使用多重赋值,经过简化后完整的代码如下:

while True:
    try:
        # 获取 输入的 n,将之转为整数
        N = int(input())
        # 使用 for range 循环迭代 n 次
        for _ in range(N):
            # 将输入拆分成列表字符串,赋值给变量 a , b
            a,b = input().split()
            # 将 a 和 b转换成整数后相加
            print(int(a)+int(b))
    except:
        break

while循环重讲

既然能用for循环解决,那是不是也可以用while循环来解决?

如果想让while循环正常的运行,其格式如下:

# 初始化语句
while 条件判断:
      # 迭代语句

while循环基础示例:

count = 0
while count < 5:
    print(count)
    count += 1  # 增加计数器,以避免无限循环

这个循环会打印数字0到4,然后结束。

使用 continue 跳过迭代:
continue 语句用于跳过当前循环的剩余部分,并返回循环的条件语句。

n = 0
while n < 5:
    n += 1
    if n == 3:
        continue  # 跳过数字3的打印
    print(n)

这个循环会打印1、2、4和5。

带有 else 的 while 循环:

与 for 循环类似,while 循环也可以有一个可选的 else 部分,它在循环条件变为 False 时执行,但如果循环被 break 中断,则不执行。

n = 0
while n < 3:
    print(n)
    n += 1
else:
    print("Loop is finished.")

这个循环会打印0、1、2,然后打印 “Loop is finished.”

一般来说,while循环都会包括初始化语句、条件判断、迭代语句这三个,那本道题目通过while进行改造的写法如下:

while True:
    try:
        N = int(input())
        # 初始化一个值 0
        i = 0
        # 判断 i 是否 小于 N 
        while i < N:
            a, b = input().split()
            # 计算结果
            print(int(a) + int(b))
            # 将 i 的值累加 1
            i = i + 1
    except:
        break

数据类型转换

在Python中, 数据类型转换可以分为两种:

隐式类型转换 - 由Python自动完成, 不需要我们去干预, 比如当整数和浮点数进行运算时,整数可以隐式转换为浮点数, 以方便执行浮点数运算。

result = 5 + 2.0  # 将整数 5 转换为浮点数 5.0,然后执行加法

此外在while(条件判断)循环中,条件判断通常是一个布尔值,即true表示真,false表示假,但是假设我们给定的是一个整数类型的值,编译器会帮助我们进行数据类型转换,将之转换成布尔值,如果整数的值为0,则条件的值为false, 其他非0的数都会转换成true。

num = 0
while num:  # 当整数 num 被转换为布尔值时,0 被视为 False,循环退出
    print(num)

显式类型转换 - 需要使用类型函数来转换
在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。 我们使用 int()、float()、str()、bool() 等函数来执行显式类型转换。

x = int(1)   # x 输出结果为 1
y = int(2.8) # 浮点数转为整数,会丢失精度,y 输出结果为 2
z = int("3") # z 输出结果为 3

x = float(1)     # x 输出结果为 1.0
y = float(2.8)   # y 输出结果为 2.8
z = float("3")   # z 输出结果为 3.0
w = float("4.2") # w 输出结果为 4.2

x = str("s1") # x 输出结果为 's1'
y = str(2)    # y 输出结果为 '2'
z = str(3.0)  # z 输出结果为 '3.0'

扩展:sys模块

在Python中,sys 模块是一个内置的系统相关的功能模块,提供了访问与Python解释器紧密相关的变量和函数。这个模块是Python标准库的一部分,用于处理不同的操作系统环境,包括程序与Python解释器之间的交互。使用 sys 模块可以执行如读取命令行参数、获取系统信息、操作标准输入输出等任务。

sys.exit([status]): 退出程序。status 是一个整数,通常为 0 表示成功,非零表示错误。
sys.stdin: 标准输入流,用于从键盘或其他输入设备读取数据。
sys.stdout: 标准输出流,用于将数据打印到屏幕。

# 导入 sys 模块
import sys  

# sys.stdin表示输入流,遍历获取的line表示每一行输入
for line in sys.stdin:
      # 对每行数据进行处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值