while循环python次数定义_python——循环(for循环、while循环)及练习

本文详细介绍了Python的for循环和while循环的使用,包括range()函数的用法,以及各种循环控制语句如break和continue。通过实例展示了1-100内的偶数和奇数求和、阶乘计算、数字组合生成、命令行提示符、9*9乘法表、用户登录管理系统、最大公约数和最小公倍数的求解。此外,还探讨了while循环的死循环、数字求和、用户登录验证以及嵌套循环等应用场景。

目标程序的三大流程1.while 循环的基本使用

2.break 和 continue

3.while 循环嵌套123

在程序开发中,一共有三种流程方式:顺序:从上向下,顺序执行代码

分支:根据条件判断,决定执行代码的分支

循环:让特定代码重复执行(解决程序员重复工作)123

一、for循环

1、基本用法for 循环使用的语法:

“”"

for 变量 in range(10):

循环需要执行的代码

else:

循环结束时,需要执行的代码

“”"for i in range(5):

print(i)12

206244659_1_20201102045805322.png

range的用法:

“”"

range(stop): 0~stop-1

range(start,stop): start~stop-1

range(start,stop,step): start~stop step(步长)

“”"

测试:>>> range(5)

[0, 1, 2, 3, 4]

>>> range(10)

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> range(1,11)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> range(1,11,2)        ##取出奇数

[1, 3, 5, 7, 9]

>>> range(0,11,2)        ##取出偶数

[0, 2, 4, 6, 8, 10]

>>>1234567891011

2、练习:(1)分别求1~100内偶数之和sum = 0

for i in range(2,101,2):

sum += i

print(sum)1234

206244659_2_20201102045805384.png(2)求1~100之间所有奇数之和sum1 = 0

for i in range(1,101,2):

sum1 += i

print(sum1)1234

206244659_3_20201102045805431.png(3)求阶乘# 求阶乘

num = int(input('请输入一个数字:'))

res = 1

for i in range(1, num + 1):

res*=i

print('%d的阶乘为:%d' %(num,res))123456

206244659_4_20201102045805478.png(4)有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数sum = 0

for i in (1,2,3,4):

for j in (1,2,3,4):

for k in (1,2,3,4):

if i != j and j!= k and i != k:

sum += 1

print('共有%d种组合' %sum)1234567

206244659_5_20201102045805509.png(5)有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数for x in range(1,5):

for y in range(1,5):

for z in range(1,5):

if (x!=y) and (y!=z) and (z!=x):

print("%d%d%d" % (x, y, z))12345

206244659_6_20201102045805540.png

优化后i = 0

for x in range(1,5):

for y in range(1,5):

for z in range(1,5):

if (x!=y) and (y!=z) and (z!=x):

i += 1

if i%4:

print("%d%d%d" % (x, y, z), end=" | ")

else:

print("%d%d%d" % (x, y, z))12345678910

206244659_7_20201102045805587.png(6)实现命令行提示符break:跳出整个循环,不会再执行循环后续的内容

continue:跳出本次循环,continue后面的代码不再执行,但是还是会继续循环

exit():结束程序的运行

import os

for i in range(1000):

cmd = input(’[kiosk@test ~]$ ')

if cmd:

if cmd == ‘exit’:

break

else:

print(‘run %s’ %(cmd))

os.system(cmd)

else:

continue

206244659_8_20201102045805634.png

(7)9*9乘法表for i in range(1,10):

for j in range(1,i+1):

print('%d * %d = %d\t' %(i,j,i*j),end='')

print()1234

206244659_9_20201102045805665.png(8)用户登录管理系统

用户登录需求:

1.输入用户名和密码;

2.判断用户名和密码是否正确(name=‘root’,passwd=‘westos’)

3.登录仅有三次机会,超过3次会报错for i in range(3):

user = input('请输入用户名:')

passwd = input('请输入密码:')

if user=='root' and passwd == 'westos':

print('%s用户登录成功' %user)

break

else:

print('密码错误,请重新输入密码,您还剩%d次机会' %(2-i))

else:

print('超过三次,登录失败')12345678910

206244659_10_20201102045805728.png

206244659_11_20201102045805775.png(9)求最大公约数和最小公倍数

输入两个数值:

求两个数的最大公约数和最小公倍数

最小公倍数=(num1 * num2) / 最大公约数# 输入两个数字

num1=int(input('Num1:'))

num2=int(input('Num2:'))

# 找出两个数中的较小者

min_num = min(num1,num2)

# 确定最大公约数

for i in range(1,min_num+1):

if num1 % i ==0 and num2 % i ==0:

max_commer = i

# 求最小公倍数

min_commer =int(num1 * num2)/max_commer

print('%s 和 %s 的最大公约数为%s' %(num1,num2,max_commer))

print('%s 和 %s 的最小公倍数为%s' %(num1,num2,min_commer))12345678910111213

206244659_12_20201102045805822.png

二、While循环

循环的作用就是让指定的代码重复的执行,while 循环最常用的应用场景就是让执行的代码按照指定的次数重复执行while 条件():

条件满足时,做的事情1

条件满足时,做的事情2

......1234

1、基本用法# 定义一个整数变量,记录循环的次数

i=1

# 开始循环

while i <= 3:

# 希望循环内执行的代码

print('hello python')

# 处理计数器

i+=112345678

206244659_13_20201102045805853.png

2、死循环while True:

print('hello python')12

3、求1~100之间数字的和# 定义记录循环次数的变量

i = 0

# 定义结果变量

result = 0

while i <= 100:

result+=i

# 处理计数器

i+=1

# 输出结果

print('1~100之间的数字之和为:%d' %result)12345678910

206244659_14_20201102045805884.png

4、用户登录管理trycount = 0

while trycount 

name = input('用户名:')

passwd = input('密码:')

if name == 'root' and passwd == 'westos':

print('登录成功')

break

else:

print('登录失败')

print('您还剩余%d次机会' %(2 - trycount))

trycount += 1

else:

print('登录次数超过三次,请稍后登录')1234567891011121314

206244659_15_20201102045805915

206244659_16_20201102045805962.png

5、while 循环嵌套

while 里面还有 while1.在控制台连续输出五行*,每一行星号的数量依次递增

2.完成 5 行内容的简单输出分析每行内部的*应该如何处理

输出

*

**

***

*****

*******12345678

如下:

第一种:# 1.控制行

for i in range(6):

# 2.控制*的数量

for j in range(6):

if i > j :

print("*",end='')

print(" ")1234567

206244659_17_202011020458069.png

第二种i =1

while i <= 5:

j = 1

while j <= (5 - i):

print(" ",end='')

j += 1

while (j >(5-i) and j <= 5):

print("*",end='')

j += 1

print()

i += 1

1234567891011

206244659_18_2020110204580640.png

如果想要星星倒过来呢

第三种:# 1.控制行

for i in range(6):

# 2.控制*的数量

for j in range(6):

if i 

print("*",end='')

print(" ")1234567

206244659_19_2020110204580672.png

第四种:i = 1

while i <= 5:

j = 1

while j 

print(" ",end='')

j += 1

while j >= i and j <= 5:

print("*",end='')

j += 1

print()

i += 11234567891011

206244659_20_20201102045806118.png

6、猜数字游戏

猜数字游戏:

1.系统随机生成一个1~100的数字;

2.用户共有5次机会猜;

3.如果用户猜测数字大于系统给出的数字,打印"too big"

4.如果用户猜测数字小于系统给出的数字,打印"too small"

5.如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖",并退出循环import random

num = random.randint(1,100)

print(num)

i = 1

while i <= 5:

ans = int(input("请猜数:"))

if ans > num:

print("too big,还剩%d次机会"%(5-i))

elif ans 

print("too small,还剩%d次机会"%(5-i))

else:

print("恭喜中奖!!!")

break

i += 112345678910111213141516

206244659_21_20201102045806150.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值