牛客刷题总结——Python入门05:循环语句
🤵♂️ 个人主页: @北极的三哈 个人主页
👨💻 作者简介:
Python
领域优质创作者。📒 系列专栏:《牛客题库-Python篇》
🌐推荐《牛客网》——
找工作神器
|笔试题库
|面试经验
|实习经验内推
,求职就业一站解决
👉 点击链接进行注册学习
文章目录
-
- 07 循环语句 NP49-NP61
-
- 1.range()函数的使用
- 2.遍历循环for-in
- 3.无限循环while
- 4.循环控制break和continue
-
- 4.1break
- 4.2continue
- 5.嵌套循环
- NP49 字符列表的长度
- NP50 程序员节
- NP51 列表的最大与最小
- NP52 累加数与平均值
- NP53 前10个偶数
- NP54 被5整除的数字
- NP55 2的次方数
- NP56 列表解析
- NP57 格式化清单
- NP58 找到HR
- NP59 提前结束的循环
- NP60 跳过列表的某个元素
- NP61 牛牛的矩阵相加
- **`推 荐:牛客题霸-经典高频面试题库`**
07 循环语句 NP49-NP61
1.range()函数的使用
range():
用于生成一个整数序列
创建range
对象的三种方式
# 第一种创建方式 range(stop)range(10)print(range(10)) # range(0,10) 返回值是一个迭代器对象 默认从0开始,默认步长为1print(list(range(10))) # 用于查看range对象中的整数序列 list-->列表# 第二种创建方式 range(start, stop)print(range(0, 10))# 第三种创建方式 range(start,stop,step)print(range(0, 10, 1))
代码:
# 第一种创建方式 range(stop)range(10)print(range(10)) # range(0,10) 返回值是一个迭代器对象 默认从0开始,默认步长为1print(list(range(10))) # 用于查看range对象中的整数序列 list-->列表
# 第二种创建方式 range(start, stop)print(range(0, 10))
# 第三种创建方式 range(start,stop,step)print(range(0, 10, 1)) 1 2 3 4 5 6 7 8 9 10 11
range()
函数的返回值是一个迭代器对象
range
类型的优点 :不管range
对象表示的整数序列有多长,所有rang
e对象占用的内存空间都是相同的,因为仅仅需要存储start,stop
和step
,只有当用到range
对象时,才会去计算序列中的相关元素
'''内置函数 range(start(开始)未指定从0开始, stop(结束), step(步长)未指定步长为1)'''r = range(1, 10, 2)print(r)print(list(r)) # 列表 [1, 3, 5, 7, 9]print(tuple(r)) # 元组 (1, 3, 5, 7, 9)print(set(r)) # 字典 {1, 3, 5, 7, 9} 1 2 3 4 5 6 7
in
与not in
判断整数序列中是否存在(不存在)指定的整数
'''判断指定整数在序列中是否存在 in, not in'''print(3 in r) # Trueprint(4 in r) # Falseprint(3 not in r) # Falseprint(4 not in r) # Truefor value in range(10): print(value, end=' ') 1 2 3 4 5 6 7 8
2.遍历循环for-in
for-in
循环
-
in
表达从(字符串、序列等)中依次取值,又称为遍历 -
for-in
遍历的对象必须是可迭代对象
for-in
的语法结构
for 自定义的变量 in 可迭代对象: 循环体
# for in循环# in 表达是依次 从 (字符串,序列等) 中依次取值,又称遍历# for in遍历对象必须是可迭代对象'''for in 语法结构'''# for 自定义变量 in 可迭代对象:# 循环体for i in 'hello': print(i, end=' ')print('')for i in range(10): print(i, end=' ')print('')# 在循环体中如果不需要使用到自定义变量,可将自定义变量写为下划线('_')for _ in range(3): # 3表示次数 print('hello') 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
使用for
循环 计算1-100
之间的偶数和
# 使用for循环 计算1-100之间的偶数和sum = 0for item in range(101): if item % 2 == 0: sum += itemprint('1-100之间的偶数和为:', sum) 1 2 3 4 5 6 7
输出100-999
之间的水仙花数
'''输出100-999之间的水仙花数 这个数的个位上的三次方 + 十位上的三次方 + 百位上的三次方 = 这个数'''for item in range(100, 1000): ge = item % 10 shi = item % 100 // 10 # item//10%10 bai = item // 100 if item == ge**3+shi**3+bai**3: print(item) 1 2 3 4 5 6 7
3.无限循环while
语法结构:
while 条件表达式:条件执行体(循环体)
四步循环法:
-
初始化变量
-
条件判断
-
条件执行体(循环体)
-
改变变量
-
打印输出
计算0-4
之间的累加和
a = 0 # 1.初始化变量s = 0while a <= 4: # 2.条件判断 s += a # 3.条件执行体 a += 1 # 4.改变变量 print(s) # 5.打印输出 1 2 3 4 5 6
选择结构的if
与循环结构while
的区别
If
是判断一次,条件为True
执行一行while
是判断N+1
次,条件为True
执行N
次
4.循环控制break和continue
循环结构有两个辅助循环控制的保留字:break
与continue
。
4.1break
break
用来跳出最内层for
或while
循环,脱离该循环后程序继续执行循环后续代码,通常与 分支结构 if
一起使用。
例:从键盘录入密码,最多录入三次,如果正确就结束循环
# for 循环for _ in range(3): # range()函数可以用作for循环的循环次数 3 表示for执行了3次 pwd = '888' a = input('请输入密码:') if a == pwd: print('密码正确') break else: print('密码错误,请重新输入密码')# while 循环,四步循环法a = 0while a < 3: '''条件执行体(循环体)''' b = '888' pwd = input('请输入密码:') if pwd == b: print('密码正确') break else: print('密码错误') a += 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
4.2continue
continue
语句用来结束当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环,进入下一次循环,通常与分支结构 if
一起使用
例:要求输出1-50
之间所有5
的倍数
# for 循环for i in range(1, 51): if i % 5 == 0: print(i)# while 循环a = 1while a <= 50: if a % 5 == 0: print(a) a += 1# continue 语句for item in range(1, 51): if item % 5 != 0: continue print(item) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
5.嵌套循环
循环结构中又嵌套了另外的完整的循环结构,其中内层循环做为外层循环的循环体执行。
例1:打印一个三行四列矩形
for _ in range(3): for _ in range(4): print('-', end='\t') print() 1 2 3 4
例2:输出乘法口诀表
for i in range(1, 10): for j in range(1, i+1): print(i, 'x', j, '=', i*j, end='\t') print()
NP49 字符列表的长度
my_list=['P','y','t','h','o','n']print('Here is the original list:')print(my_list)print()print('The number that my_list has is:')print(len(my_list))
NP50 程序员节
在线编程跳转链接
users_list = ['Niuniu', 'Niumei', 'Niu Ke Le']for i in users_list: print(f'Hi, {i}! Welcome to Nowcoder!')print("Happy Programmers' Day to everyone!")
NP51 列表的最大与最小
在线编程跳转链接
ls = [i for i in range(10, 51)]print(ls)print(ls[0], ls[-1])
NP52 累加数与平均值
在线编程跳转链接
ls = list(map(int, input().split(" ")))s = 0for i in ls: s += iprint("{} {:.1f}".format(s, s/len(ls)))
NP53 前10个偶数
在线编程跳转链接
my_list = [i for i in range(0, 20) if i%2==0] for i in my_list: print(i)
NP54 被5整除的数字
在线编程跳转链接
my_list = [i for i in range(1, 51) if i % 5 == 0]for i in my_list: print(i)
NP55 2的次方数
在线编程跳转链接
my_list = []for i in range(1, 11): my_list.append(2**i)for i in my_list: print(i)
NP56 列表解析
在线编程跳转链接
ls = [i for i in range(10)]print(ls)
NP57 格式化清单
在线编程跳转链接
ls = ['apple', 'ice cream', 'watermelon', 'chips', 'hotdogs', 'hotpot']while True: ls.pop(-1) print(ls) if len(ls) == 0: break
NP58 找到HR
在线编程跳转链接
users_list = ['Niuniu', 'Niumei', 'HR', 'Niu Ke Le', 'GURR', 'LOLO']for i in users_list: if i == 'HR': print(f'Hi, {i}! Would you like to hire someone?') else: print(f'Hi, {i}! Welcome to Nowcoder!')
NP59 提前结束的循环
在线编程跳转链接
ls = [3, 45, 9, 8, 12, 89, 103, 42, 54, 79]x = eval(input())for i in ls: if i == x: break print(i)
NP60 跳过列表的某个元素
在线编程跳转链接
for i in range(1, 16): if i == 13: continue print(i, end=" ")
NP61 牛牛的矩阵相加
在线编程跳转链接
n = int(input()) print([[j*n for j in i] for i in [[1, 2, 3], [4, 5, 6], [7, 8, 9]]])
推 荐:牛客题霸-经典高频面试题库
🌐
找工作神器-|笔试题库|面试经验|大厂面试题
👉 点击链接进行注册学习