99. for循环练习题-3种方式输出0-9

【目录】

文章目录

  • 99. for循环练习题-3种方式输出0-9
    • 1. for循环和while循环的区别
    • 2. 输出 0~(n-1)的数字
      • 2.1 基础代码
      • 2.2 自定义函数代码
      • 2.3 异常处理语句代码

【正文】

99. for循环练习题-3种方式输出0-9

1. for循环和while循环的区别

for循环和while循环都用于重复执行特定的代码块。

【for循环语法】

for 迭代变量 in 迭代对象:循环体

【while循环语法】

while 条件表达式:循环体

【区别】

while循环中,只有一个循环条件,如果为真,则执行循环体代码;否则,跳出循环。

while循环没有明确的计数器或循环变量,需要在循环体中手动更新条件或使用break语句来跳出循环。

有明确的条件,用while循环。

不确定条件,但明确了在某个范围之内,用fo循环。

2. 输出 0~(n-1)的数字

【目标任务】

在同一行内输出 0-n 中的前 n 个数字,输出的每个数字后跟一个空格

【输入要求】

输入一个不大于10的正整数n。

【输出要求】

在同一行中输出 0~(n-1) 的数字。

【示例】

输入:3

输出:0 1 2

【思路解析】

输出 0~(n-1) 的数字,0~(n-1)这是一个范围。

在某个范围内,我们用for语句来实现。

2.1 基础代码

【代码示例】

n = int(input("请输入数字 n: "))for i in range(n):print(i, end=" ")

【终端输出】

0 1 2 

终端输入3,输出结果为0 1 2

【代码解析】

n = int(input("请输入数字 n: "))

input函数获取用户输入的数字,注意input函数接收的数据类型为字符串类型。

int函数其字符串类型的数据转换为整数类型后赋值给变量 n

for i in range(n):

for循环语法:

for 迭代变量 in 迭代对象:循环体

`i`` 是迭代变量。

range(n) 是迭代对象。

使用 for 循环和 range(n) 来生成一个从 0n-1 的整数序列。

range(n) 函数会生成一个包含 0 到 n-1 的序列,每次循环迭代时,将当前迭代的值赋值给变量 i。

注意注意 for 循环语句后面接一个英文冒号:,冒号后面的循环体代码需要有4个空格的缩进。

注意注意 range(n)是生成的序列只到n-1,不包含n

print(i, end=" ")

这是是for语句要循环执行的代码。

注意该语句前有4个空格的缩进。

print(i, end=" ") 将每个数字打印出来,并用空格作为分隔符。

end=" " 的作用是将默认的换行符 "\n" 替换为一个空格,这样数字就会在同一行上输出。

print函数语法:

print(value,, sep=' ', end='\n', file=sys.stdout, flush=False)

一个完整的print()函数有5个参数:

end参数设定输出语句以什么结尾,默认是换行符\n结尾,即输出后会重新起一行。

注意题目要求在同一行内,且每个数字后跟一个空格,因此这里需要添加 end=' '

【没有end参数,默认 end=‘\n’】

n = 3
for i in range(n):print(i)

【终端输出】

0
1
2

【end=" "】

n = 3
for i in range(n):print(i, end= " ")

【终端输出】

0 1 2 

【区别】

默认时,end='\n'输出有换行效果。

end= " " 输出的数字以空格作为间隔。

2.2 自定义函数代码

【代码示例】

def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("请输入数字 n: "))
print_numbers(n)

【终端输出】

0 1 2 

【代码解析】

def print_numbers(n):

def 语句定义了一个名为 print_numbers 的函数,它接收一个参数 n。

  • def 是关键字。
  • print_numbers函数名称,你可以根据自己的喜欢命名。
  • ( ) 一对英文圆括号。
  • n 是自定义函数接收的参数。

注意注意,如果有多个参数,参数之间使用英文逗号,分隔。

注意注意,如果没有参数,也必须保留一对空的英文圆括号( ),否则程序会报错。

for i in range(n):print(i, end=" ")

在函数内部,我们使用 for 循环和 range(n) 来生成一个从 0 到 n-1 的整数序列,并使用 print 函数将每个数字逐个打印出来。

我们使用 end=" " 参数来指定以空格作为分隔符,使得数字在同一行上输出。

n = int(input("请输入数字 n: "))

input函数从终端获取一个数字 n 。

print_numbers(n)

调用函数语法:

函数名(参数列表)

当你定义了一个函数后,你可以通过函数名加上一对圆括号来调用它。

括号里可以包含函数需要的参数。

如果函数没有参数,则括号可以为空。

  • print_numbers是函数名。
  • ( )一对英文圆括号。
  • n实际传入给函数的值。

2.3 异常处理语句代码

没有学过异常处理语句的同学,请忽略该部分内容。

要加入异常处理语句,就要先确定程序可能引发的异常错误。

上面的代码异常可能发生在终端输入。

终端输入有以下几种情况:

  • 输入一个正整数。
  • 输入一个负整数。
  • 输入0。
  • 输入一个小数。
  • 输入的内容非数据类型。

【输入一个正整数:3】

def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("请输入数字 n: "))
print_numbers(n)

【终端输出】

0 1 2 

【输入一个负整数:-3】

def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("请输入数字 n: "))
print_numbers(n)

终端输入-3,程序什么也没输出。

【代码解析】

print(list(range(-3)))

【终端输出】

[]

range函数语法为:

range`(start,end,step)`

range 函数有3个参数start,end,step

在 range 函数中,如果传入的 end 参数小于等于 start 参数,并且步长 step 的符号与 start - stop 的符号相同,那么生成的序列将为空。

list(range(-3))返回的是空列表。

for i in range(-3): 没有可以遍历的内容,因此for循环语句没有任何输出。

range函数相关知识可参考下面的链接:

42. range函数—生成器函数-更新

【输入0】

def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("请输入数字 n: "))
print_numbers(n)

【代码解析】

print(list(range(0)))

【终端输出】

[]

range(0)range(-3)一样,都是空的,不会有内容返回。

【输入一个小数:0.3】

def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("请输入数字 n: "))
print_numbers(n)

【终端输出】

ValueError: invalid literal for int() with base 10: '0.3'

range函数接收的参数必须是整数。

当输入小数时程序报错。

ValueError: invalid literal for int() with base 10: '0.3':“传入的值错误:使用十进制将 ‘0.3’ 转换为整数时出现无效字面值”。

【输入的内容非数据类型:p】

def print_numbers(n):for i in range(n):print(i, end=" ")n = int(input("请输入数字 n: "))
print_numbers(n)

【终端输出】

ValueError: invalid literal for int() with base 10: 'p'

ValueError: invalid literal for int() with base 10: p':“传入的值错误:使用十进制将 ‘p’ 转换为整数时出现无效字面值”。

【思路解析】

输入一个正整数 - 程序正常运行
输入一个负整数 - 程序没有输出
输入0 -程序没有输出
输入一个小数- 程序报错 - ValueError: invalid literal for int() with base 10: '0.3'
输入的内容非数据类型-程序报错 - ValueError: invalid literal for int() with base 10: 'p'

【解决可能出现的异常】

输入一个负整数 - 输入的数<0,请重新输入
输入0 -输入的数=0,请重新输入
输入一个小数 - 用except语句抛出ValueError异常
输入内容非数据类型 - 用except语句抛出ValueError异常

【代码示例:99-1.py】

def print_numbers(n):    for i in range(n):print(i, end=" ")    try:n = int(input("请输入数字 n: "))while n<= 0:n = int(input("输入的数字小于等于0,请重新输入数字 n: "))print_numbers(n)
except ValueError as e:print("您输入的不是正整数!", e)

源代码请到金山文档对应文件夹下载。

【终端输出】

在这里插入图片描述

【代码解析】

def print_numbers(n): 

定义了一个名为 print_numbers 的函数,该函数接受一个参数 n

for i in range(n):

使用 for 循环遍历从 0 到 n-1 的数字。

print(i, end=" ")  

打印每个数字 i,并以空格作为分隔符。

try:    

try…except 是捕获异常语句。

try 语句块中的代码会被执行。

如果执行过程中出现了异常,就会跳转到 except 语句块中的代码执行。

n = int(input("请输入数字 n: "))   

提示用户输入一个数字,并将其转换为整数类型,赋值给变量 n。

while n<= 0:      

当输入的数字小于等于 0 时,进入循环。

n = int(input("输入的数字小于等于0,请重新输入数字 n: "))    

输入的数字小于等于 0 时,提示用户重新输入一个数字,并将其转换为整数类型,赋值给变量 n。

print_numbers(n)

当输入的数字为正整数时,执行该语句。

调用函数 print_numbers,传入参数 n,以打印从 0 到 n-1 的数字序列。

调用函数语法函数名(参数列表)

except ValueError as e:   

当输入的内容不是数据类型,就会执行except语句。

  • except:关键字。

  • ValueError:异常名称。

  • as:关键字。

  • e可选参数,表示给前面的的异常指定一个别名,该别名可根据你的喜欢命名。

print("您输入的不是正整数!", e)

打印出错误消息,指示用户输入的不是一个正整数。

e可以输出该语句:ValueError: invalid literal for int() with base 10: 'p'

有关异常语句的相关内容可参考下面的链接:

95. Python基础教程:异常处理try…except语句

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35448.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea模板的使用(配置xml文件模板)

1. 问题的引出 我们在日常项目中可以发现&#xff0c;sql映射文件和mybatis主配置文件&#xff0c;以及application.yml文件中有很多固定不变的内容&#xff0c;为了方面使用&#xff0c;所以可以把这些xml文件设置为模板 2. 创建模板的步骤 按照图片一步一步进行即可 点击…

(二)结构型模式:1、适配器模式(Adapter Pattern)(C++实现示例)

目录 1、适配器模式&#xff08;Adapter Pattern&#xff09;含义 2、适配器模式应用场景 3、适配器模式的UML图学习 4、C实现适配器模式的示例 1、适配器模式&#xff08;Adapter Pattern&#xff09;含义 将一个接口转换为客户端所期待的接口&#xff0c;从而使两个接口…

Mac安装nvm教程及使用

nvm 是 node 版本管理器&#xff0c;也就是说一个 nvm 可以管理多个 node 版本&#xff08;包含 npm 与 npx&#xff09;&#xff0c;可以方便快捷的安装、切换 不同版本的 node。 1、直接通过brew安装 执行命令&#xff1a;brew install nvm PS&#xff1a; 如果没有安装br…

Oracle database 静默安装 oracle 11g 一键安装

基于oracle安装包中应答文件实现一键安装 支持环境&#xff1a; Linux &#xff1a;centerOS 7 oracle &#xff1a;11.2.0 Oracle应答文件 runInstaller应答文件 /database/response/db_install.rsp netca应答文件 /database/response/netca.rsp dbca应答文件 /database/re…

python中的运算符号含义,python基本运算符的操作

本篇文章给大家谈谈python的运算符号有哪些类型&#xff0c;以及python各运算符号的功能说明&#xff0c;希望对各位有所帮助&#xff0c;不要忘了收藏本站喔。 1.算数运算符&#xff08;最常见的&#xff09; 标准算数运算符&#xff08;加减乘除&#xff09; 取余运算…

UML-状态图

目录 状态图 状态图的图符 状态机 状态 ​转换 电话机状态图 活动图和状态图区别&#xff1a; 状态图 状态图(Statechart Diagram)是描述一个实体基于事件反应的动态行为&#xff0c;显示了该实体如何根据当前所处的状态对不同的事件做出反应。通常我们创建一个UML状态…

Jmeter设置中文的两种方式,建议使用第二种

方案一 进入jmeter图像化界面&#xff0c;选择Options下的Choose Language&#xff0c;再选择Chinese(Simplified)。这个就是选择语言为简体中文&#xff08;缺陷&#xff1a;这个只是在本次使用时为中文&#xff0c;下次打开默认还是英文的&#xff09; 方案二&#xff08;…

数学建模(二)线性规划

课程推荐&#xff1a;6 线性规划模型基本原理与编程实现_哔哩哔哩_bilibili 目录 一、线性规划的实例与定义 1.1 线性规划的实例 1.2 线性规划的定义 1.3 最优解 1.4 线性规划的Mathlab标准形式 1.5 使用linprog函数 二、线性规划模型建模实战与代码 2.1 问题提出 2.2…

机器学习深度学习——seq2seq实现机器翻译(详细实现与原理推导)

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——seq2seq实现机器翻译&#xff08;数据集处理&#xff09; &#x1f4da;订阅专栏&#xff1a;机器学习&…

机器学习编译系列

机器学习编译MLC 1. 引言2. 机器学习编译--概述2.1 什么是机器学习编译 1. 引言 陈天奇目前任教于CMU&#xff0c;研究方向为机器学习系统。他是TVM、MXNET、XGBoost的主要作者。2022年夏天&#xff0c;陈天奇在B站开设了《机器学习编译》的课程。   《机器学习编译》课程共分…

立即开始使用 3D 图像

一、说明 这个故事介绍了使用这种类型的数据来训练机器学习3D模型。特别是&#xff0c;我们讨论了Kaggle中可用的MNIST数据集的3D版本&#xff0c;以及如何使用Keras训练模型识别3D数字。 3D 数据无处不在。由于我们希望构建AI来与我们的物理世界进行交互&#xff0c;因此使用3…

了解 Langchain️是个啥?:第 1 部分

一、说明 在日常生活中&#xff0c;我们主要致力于构建端到端的应用程序。我们可以使用许多自动 ML 平台和 CI/CD 管道来自动化 ml 管道。我们还有像Roboflow和Andrew N.G.的登陆AI这样的工具来自动化或创建端到端的计算机视觉应用程序。 如果我们想在OpenAI或拥抱脸的帮助下创…

Day 26 C++ list容器(链表)

文章目录 list基本概念定义结构双向迭代器优点缺点List和vector区别存储结构内存管理迭代器稳定性随机访问效率 list构造函数——创建list容器函数原型示例 list 赋值和交换函数原型 list 大小操作函数原型示例 list 插入和删除函数原型示例 list 数据存取函数原型注意示例 lis…

论文详解 ——《SNR-Aware Low-light Image Enhancement》

文章目录 Abstract1.Introduction2. Related Work3. Our Method3.1 Long- and Short-range Branches3.2 SNR-based Spatially-varying Feature Fusion3.3 SNR-guided Attention in Transformer3.4 Loss Function 4. Experiments4.1. Datasets and Implementation Details4.2 Co…

6.1 安全漏洞与网络攻击

数据参考&#xff1a;CISP官方 目录 安全漏洞及产生原因信息收集与分析网络攻击实施后门设置与痕迹清除 一、安全漏洞及产生原因 什么是安全漏洞 安全漏洞也称脆弱性&#xff0c;是计算机系统存在的缺陷 漏洞的形式 安全漏洞以不同形式存在漏洞数量逐年递增 漏洞产生的…

前端开发:数组对象判断重复的方法详解

前言 在前端开发过程中,关于数据处理是非常常用的操作,尤其是通过算法处理从后端获取的数据甚为重要。而且在前端开发中,两大类型的数据处理是必备的:数组和对象。与其说是数据处理,不如说是数组和对象的处理。实际开发中,关于数组数据的处理所占比例更高,尤其是涉及到表…

使用Flask.Request的方法和属性,获取get和post请求参数(二)

1、Flask中的request 在Python发送Post、Get等请求时&#xff0c;我们使用到requests库。Flask中有一个request库&#xff0c;有其特有的一些方法和属性&#xff0c;注意跟requests不是同一个。 2、Post请求&#xff1a;request.get_data() 用于服务端获取客户端请求数据。注…

理解ConcurrentSkipListMap(有点类似于并发的TreeMap)

是一个分层的结构。 从最上面开始查找&#xff0c;最后层层往下查。 插入和删除有可能会引起节点Level的变更。 key是有序的&#xff0c;因此可以看做是并发的TreeMap

ubuntu18.04下配置muduoC++11环境

1.安装muduo依赖的编译工具及库 Cmake sudo apt-get install cmakeBoost sudo apt-get install libboost-dev libboost-test-devcurl、c-ares DNS、google protobuf sudo apt-get install libcurl4-openssl-dev libc-ares-dev sudo apt-get install protobuf-compiler libp…