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,一经查实,立即删除!

相关文章

Linux一些常见的命令

1. 基础命令 1. ls&#xff1a; 列出目录内容。- 例如&#xff1a;ls -l 以长格式列出文件和目录。2. cd&#xff1a; 切换工作目录。- 例如&#xff1a;cd /home/user 进入 /home/user 目录。3. pwd&#xff1a; 显示当前工作目录的路径。4. mkdir&#xff1a; 创建新目录。-…

flink-对齐和不对齐,精准一次和至少一次

精准一次怎么保证&#xff1f;可以设置为以下2个 对齐 当有一个barrier比较快时&#xff0c;输入缓冲区阻塞&#xff0c;当另外一个barrier到来时&#xff0c;才进行备份&#xff0c;所以数据不会重复。优点&#xff1a;不会造成数据重复缺点&#xff1a;会造成数据积压&#x…

ChatGPT Plus和ChatGPT对比

模型规模更大&#xff0c;参数数量超过6万亿&#xff0c;比ChatGPT大很多训练数据更丰富&#xff0c;包括不同语言、领域和类型的数据语言理解和生成能力更强&#xff0c;能够更准确地理解和生成文本可解释性和可控性更好&#xff0c;支持更多的调参和控制参数&#xff0c;生成…

uni-app和springboot完成前端后端对称加密解密流程

概述 使用对称加密的方式实现。前端基于crypto-js。uni-app框架中是在uni.request的基础上&#xff0c;在拦截器中处理的。springboot在Filter中完成解密工作。 uni-app 项目中引入crypto-js。 npm install crypto-js加密方法 const SECRET_KEY CryptoJS.enc.Utf8.parse(…

最强自动化测试框架Playwright(20)- iframe

一个页面可以附加一个或多个 Frame 对象。每个页面都有一个主框架&#xff0c;并且假定页面级交互&#xff08;如&#xff09;在主框架中运行。click frame_locator 使用 iframe 时&#xff0c;可以创建一个框架定位器&#xff0c;该定位器将进入 iframe 并允许选择该 iframe…

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

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

gcc编译选项之预处理向源码传参和条件编译

一、是什么? 预处理:是指在进行加工前准备工作. gcc 选项 文件名字 二、使用步骤 1.向源码传参 gcc -save-temps -DSENSOR_TYPE=SONY_IMX477_MIPI_8M_30FPS_12BIT hello.c -o hello 代码如下(示例): #include <stdio.h> #include <stdlib.h>typedef enum …

acwing 平衡括号字符串 贪心 括号序列

&#x1f468;‍&#x1f3eb; 平衡括号字符串 给定一个字符串 s s s&#xff0c;该字符串的每个字符都是 (、) 或 # 之一。 你的任务是将 s s s 中的每个 # 变换为一个或多个 )&#xff0c;从而得到一个平衡括号字符串。 不同 # 变换的 ) 的数量可以不同。 请你输出为了…

数据容器——元组(tuple)

1、元组与列表的不同点 列表是可以修改的。如果想要传递的信息&#xff0c;不被算改&#xff0c;列表就不合适了。 元组同列表一样&#xff0c;都是可以封装多个、不同类型的元素在内。 但最大的不同点在于&#xff1a;元组一旦定义完成&#xff0c;就不可修改 所以&#xff…

2023河南萌新联赛第(五)场:郑州轻工业大学 --01分数规划

题目描述 给定一个字符串 s&#xff0c;仅含 0, 1, ? 三种字符&#xff0c;你必须将所有 ? 替换为 1 或 0 。 定义 s 的美好值为将所有?进行替换后&#xff0c;s的最长连续 1 或 0 的子串的长度。请你进行所有替换后&#xff0c;使得字符串 s 的美好值最大&#xff0c;请输…

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

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

CompletableFuture

java8中新引入了批量线程处理类CompletableFuture CompletableFuture.allOf是与的关系, 每个都要执行完 CompletableFuture.anyOf是或的关系, 其中一个执行完 以下示例代码: CompletableFuture.allOf(CompletableFuture.runAsync(() -> {Thread.currentThread().setName(&q…

js常用的方法函数

JavaScript 中有许多常用的内置方法和函数&#xff0c;用于处理字符串、数组、对象、日期等不同类型的数据。以下是一些常见的 JavaScript 方法和函数&#xff1a; 字符串操作&#xff1a; str.length: 返回字符串的长度。 str.charAt(index): 返回指定位置的字符。 str.indexO…

Mac安装nvm教程及使用

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

Golang - 生成和读取toml文件

代码示例&#xff1a; package mainimport ("fmt""github.com/pelletier/go-toml""os""path" )func CreateToml(tomlPath string) {tree, err : toml.Load("")if err ! nil {fmt.Println("Error while creating empt…

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…

小程序保留2位小数据,不四舍五入

方法1&#xff1a; parseInt toFixed /* * 保留2位小数&#xff0c;不四舍五入 * 5.992550 >5.99 , 2 > 2.00 * */ const toFixed2Decimal (value) > {return (parseInt(value*100)/100).toFixed(2) } console.log(587.67*100) console.log(toFixed2Decimal(587.67…

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

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

(provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。)

问题描述 NET6 Code First 使用Update-database时 报错&#xff1a;A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 证书链是由不受信任的颁发机构颁发的。) 解决方…

UML-状态图

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