zoukankan      html  css  js  c++  java
  • Python学习04_循环结构

    应用场景

    当需要重复执行某些语句的时候可以使用循环结构来进行重复执行的结构。在Python中构造循环有两种方法,for-in循环和while循环。

    for-in循环

    如果已知循环的次数或者对容器进行迭代。使用for-in进行循环会比较合适。

    如求出1~n的总和。

    """
    用for循环实现1~100求和
    """
    sum=0
    for x in range(101):
        sum+=x
    print(sum)
    

    image-20210121182630465

    rang()可以构造数字范围。

    • range(101):产生0到100范围的整数
    • range(1,101):产生1~100范围的整数
    • range(1,101,2):产生1~100的计数。步长为2
    • range(100,0,-2):产生100到1的偶数,步长是-2

    实现1~100之间的偶数求和。

    """
    用for循环实现1~100之间偶数求和
    """
    sum=0
    for x in range(2,1012):
        sum+=x
    print(sum)
    

    image-20210121183403387

    while循环

    若干不知道循环的次数,推荐使用while循环。通过一个表达式来控制循环,表达式成立,循环继续,不成立,循环结束。

    以猜数字游戏来看while循环。猜数字游戏的规则是:计算机出一个1到100之间的随机数,玩家输入自己猜的数字,计算机给出对应的提示信息(大一点、小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。

    """
    猜数字游戏
    """
    import random  # 用于生成随机数
    ans = random.randint(1, 100)
    cnt = 0
    while True:
        cnt += 1
        num = int(input('请输入:'))
        if num < ans:
            print('大一点')
        elif num > ans:
            print('小一点')
        else:
            print('恭喜你猜对了!')
            break  # 结束循环
    print('你总共猜了%d次' % cnt)
    
    

    image-20210121184649148

    循环结构也是可以像分支结构一样进行嵌套。例如输出九九乘法表。

    """
    九九乘法表
    """
    for i in range(1,10):
        for j in range(1,1+i):
            print('%d * %d = %d'% (i,j,i*j),end='	')
        print()
    
    

    image-20210121185148907

    练习

    练习一

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

    """
    输入一个正整数判断它是不是素数
    """
    num = int(input('请输入一个正整数:'))
    flag = True
    i = 2
    while i*i <= num:
        if num % i == 0:
            flag = False
            break
        i += 1
    if flag and num != 1:
        print('%d是素数' % num)
    else:
        print('%d不是素数' % num)
    
    

    image-20210121190059498

    练习二

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

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

    """
    输入两个正整数计算它们的最大公约数和最小公倍数
    """
    x=int(input('x='))
    y=int(input('y='))
    tmpx=x
    tmpy=y
    
    while tmpy!=0:
        r=tmpx%tmpy
        tmpx=tmpy
        tmpy=r
    print('%d和%d的最大公约数是%d'%(x,y,tmpx))
    print('%d和%d的最小公倍数是%d'%(x,y,x*y/tmpx))
    

    image-20210121192016761

    练习三

    打印三角形

    image-20210121192144665

    """
    打印三角形
    """
    row = int(input('请输入行数:'))
    for i in range(row):
        for j in range(i+1):
            print('*',end='')
        print()
    
    for i in range(row):
        for j in range(row):
            if j<row -i-1:
                print(' ',end='')
            else:
                print('*',end='')
        print()
    
    for i in range(row):
        for j in range(row - i - 1):
            print(' ',end='')
        for k in range(2 * i + 1):
            print('*',end='')
        print()
    

    image-20210121192839865

    不积硅步,无以至千里。
  • 相关阅读:
    重新认识自己
    GIT学习之路第一天 简介及其安装
    GIT学习之路第一天 简介及其安装
    2017杭电多校第六场1008 Kirinriki
    2017杭电多校第六场1008 Kirinriki
    常用技巧精选之尺取法
    常用技巧精选之尺取法
    2017杭电多校第六场1011Classes
    2017杭电多校第六场1011Classes
    2017杭电多校第六场03Inversion
  • 原文地址:https://www.cnblogs.com/wyloving/p/14309985.html
Copyright © 2011-2022 走看看