Day4-循环结构

重复一件相同的事情,就是循环。

Python 中有for-in循环,以及while循环

for-in循环

如果知道循环执行的次数或要对一个容器进行迭代(不理解?什么是迭代,更新换代?)。

"""
用for循环实现1-100求和

sum = 0
for x in range(101):
    sum += x
print(sum)

"""
  • range(101):可以用来产生0到100范围的整数,需要注意的是取不到101。
  • range(1, 101):可以用来产生1到100范围的整数,相当于前面是闭区间后面是开区间。
  • range(1, 101, 2):可以用来产生1到100的奇数,其中2是步长,即每次数值递增的值。
  • range(100, 0, -2):可以用来产生100到1的偶数,其中-2是步长,即每次数字递减的值。
"""
用for循环实现1-100之间的偶数求和

第一种方法
sum = 0
for x in range(2,101,2):
    sum += x
print(sum)

第二种方法
sum = 0
for x in range(1,101):
    if x % 2==0:
        sum += x
print(sum)

"""

while循环

如果不知道具体循环次数,推荐使用while循环。while循环通过一个bool值来控制循环。true则继续循环。false则停止循环。

"""
猜数字游戏

import random

answer = random.randint(1, 100)#随机数产生的方法
couter = 0
while True:
    couter += 1
    number = int(input("请输入:"))
    if number < answer:
        print("小了")
    elif number > answer:
        print("大了")
    else:
        print("答对了")
        break
    print("你总共猜了%d次" % couter)
if couter > 7:
    print("智商余额不足!")

"""

break关键字为终止循环,只能终止他所在的那个循环

continue,用来放弃本次循环。直接进入下一轮循环。

"""
输出乘法口诀表
for i in range(1,10):
    for j in range (1,i+1):
        print("%d*%d=%d" % (i, j, i * j), end = "\t")
    print()

"""

 

练习

练习1:输入一个正整数判断是不是素数。

提示:素数指的是只能被1和自身整除的大于1的整数。

"""
判断素数
"""
from math import sqrt
num = int(input("请输入一个数"))
#end = int(sqrt(num))
is_prime = True#先假设num是素数
for i in range(2, num):
    if num % i == 0:
        is_prime = False#num不是素数
        break
if is_prime and num != 1:
    print("%d是素数" % num)
else:
    print("%d不是素数" % num)

练习2:输入两个正整数,计算它们的最大公约数和最小公倍数。

提示:两个数的最大公约数是两个数的公共因子中最大的那个数;两个数的最小公倍数则是能够同时被两个数整除的最小的那个数。

"""
练习2:输入两个正整数,计算他的最大公约数和最小公倍数

提示:两个数的最大公约数是两个数的公共因子中最大的那个数,
    两个数的最小公倍数则是能够同时被两个数整除的最小的那个数
    
x = int(input("x="))
y = int(input("y="))
#如果x大于y,就交换x和y的值
if x > y:
    #通过下面的操作,将y值赋值给x,x值赋值给y
    x, y = y, x
#从两个数中较小的数开始做递减的循环
for i in range(x, 0, -1):
    if x % i == 0 and y % i ==0:
        print("%d和%d的最大公约数是%d" % (x, y, i))
        print("%d和%d的最小公倍数是%d" % (x, y, x * y // i))#//表示整数除法
        break

"""

练习3:打印如下所示的三角形图案。

*
**
***
****
*****

user = int(input("请输入行数"))
star = "*"
for i in range(user):
    for _ in range(i+1):
        print(star, end=" ")
    print()
    *
   **
  ***
 ****
*****
user = int(input("请输入行数:"))
for i in range(user):
    for j in range(user):
        if j < user - i - 1:
            print(" ", end=" ")
        else:
            print("*", end=" ")
    print()
    *
   ***
  *****
 *******
*********

user = int(input("输入行数:"))
for i in range(user):
    for j in range(user-i):
        print(" ", end=" ")
    for k in range(2*i +1):
        print("*",end=" ")
    print()

 

posted @ 2021-02-21 11:05  三千杨柳细如丝  阅读(57)  评论(0)    收藏  举报