while循环和for循环与它们的区别

一、while循环与if语句有些类似,检查布尔类型的真假,与if不同的是它会循环执行,执行一次后会重复执行,直到执行到假为止,而while Ture是在不知道结果时给的一个条件,作为大部分不知道结果的语句应用。

n = int(input("请输入要打的层数"))
index = 1
while index <= n:
    num = index * """*"""
    print(num)
    index = index + 1

这是我自己写的最基本的whil输出行数

import random
WORDS = ("holle")
print("猜单词游戏")
# iscon
words = random.choice(WORDS)
print (words)
newword = ""
while words:
    position = random.randrange(len(words))
    newword += words[position]
    words = words[:position]+words[(position+1)]
print("乱序后的单词是",newword)
guess = input("请你猜单词")
if guess == right:
    print("对")
else:
    print("错了")

这个则是比较难的进阶版的猜单词游戏,需要引入其他的单词

(a,b) = eval(input("输入两个整数"))
k = 1
while True:
    if a % k == 0 and b % k == 0:
        k += 1
        god = k
    elif k > a or k > b:
        break
        print("%s是最大公约数"%(god))

这个则是我上面说的对于while Ture的用法,是对与不知道结果是什么的,就比如上图所说的公约数。

二、for循环可以遍历任何序列的项目,比如字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素,需要在执行所得结果后在代码后加上终止语句,break或comtinie。

num = int(input("输入打印层数"))
for i in range(0,num):
    for j in range(num-i,0,-1):
        print(" ",end="")
    for j in range(-i,i+1):
        print(abs(j)+1,end="")
        j += 1
    print("")
这则是我用for循环的打印层数,他需要引用range,相比于while比较复杂,且需要终止语句。

count = 0
for i in range(2,1001):
    for j in range(2,i)
        if i % j == 0:
            break
    else:
        print(i,end="\t")
        count += 1
        if count % 8 == 0:
            print()

这则是输出一千以内的质数,不同于上条是达到条件后需要break或者continue来终止循环,不然就会一直输出结果。

三、对比for循环和while循环,两者在使用else上有很大区别,如果else语句和while循环语句一起使用,则当条件变成False时,就执行else语句。如果else语句和for循环语句一起使用,else语句块只在for循环正常终止时执行。另外for循环和while循环的循环次数有很大的不同。前者是取决于数据包含的元素个数,后者是却取决于条件何时为False。而在循环取值方面,for循环比while循环要强大,所以如果遇到循环取值的场景,就应该用for循环。但是另一方面,for循环只能对某种事物的集合做循环,而while可以进行任何种类的循环。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值