zoukankan      html  css  js  c++  java
  • python循环语句

    注:在介绍python循环语句之前,这里需要先给大家介绍下range函数

    # python2:
        - range(5): 即刻生成数据, 消耗时间并占用内存;
        - xrange(5): 先生成一个xrange对象, 使用值时才生成数据, 占用内存;


    # python3:
        - range(5) 相当与python2里面的xrange;

    • 1           range函数原型:range(start, end, step)

      参数含义:

                 start:计数的开始位置,默认是从0开始。

                 end: 计数的结束位置

                 step:每次跳跃的间距,默认为1。

    • 2         range()函数内只有一个参数,则表示会产生从0开始计数到输入参数(前一位整数)结束的整数列表

    • range(stop): 0~stop-1

    • 3          当range()函数传入两个参数时,则将第一个参数做为起始位,第二个参数为结束位:

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

    • 4          当range()函数内填入第三个参数时,第三个参数表示递增或递减值,默认为0;

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

      现打印一个从0开始到20结束,逐步递增4的列表,和一个以20开始到0结束,逐步递减4的列表,如图:

    1.for循环语句

    1.for循环使用的语法:

        for 变量 in range(10):(参数自己根据需要选择)
            循环需要执行的代码

        for 变量 in range(10):
            循环需要执行的代码
        else:
            循环执行结束执行的代码

    2.示例:

    1.用于求和:

    1)求1~100之间所有奇数的和

    sum = 0
    for i in range(1,101,2):
        sum=sum+i
    print(sum)

    2)求1~100之间所有偶数的和

    sum = 0
    for i in range(2,101,2):
            sum=sum+i
    print(sum)

    3)用户输入一个整形数, 求该数的阶乘

    i=int(input("输入一个数:"))
    j=1
    for n in range(1,i+1):
        j=j*n
    print(j)
     

    2.用户登陆程序需求:
        1. 输入用户名和密码;
        2. 判断用户名和密码是否正确? (name='root', passwd='westos')
        3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示;


    for  i  in  range(3):
        name = input("用户名:")
        passwd = input("密码:")
        if name == 'root' and passwd == 'westos':
            print("登陆成功")
            break
        else:
            print("登陆失败")
            print("您还剩余%d次机会" %(2-i))
    else:
        print("登陆次数超过三次, 请等待100s后再次登陆")

    3.输入两个数值,求两个数的最大公约数和最小公倍数.

    """最小公倍数=(num1*num2)/最大公约数"""

    # 2,3
    # 2,6

    # 1. 输入两个数值: input接收的是字符串类型
    num1 = int(input('Num1:'))
    num2 = int(input('Num2:'))
    # 2. 找出两个数中的最小值
    # min_num = min(num1, num2)
    min_num = num1 if num1<num2 else num2
    # 3. 最大公约数的范围在1~min_num之间;最大公约数就是num1和num2能整除的最大的数;
    for i in range(1,min_num+1):  # 1, 2
        # 2%1==0 ; 3%1==0   gys=1
        # 2%2==0   6%2==0    gys=2
        if num1 % i == 0 and num2 % i == 0:
            # 当循环结束, gys中保存的是最大的约数;
            gys = i
    # 4. 最小公倍数
    lcm = int((num1*num2)/gys)

    print("%s和%s的最大公约数为%s" %(num1, num2, gys))
    print("%s和%s的最小公倍数为%s" %(num1, num2, lcm))

    注:其实这里python有内置函数可以求公约数

    4. 猜数字游戏                                                                                              
         1. 系统随机生成一个1~100的数字;
         ** 如何随机生成整型数, 导入模块random, 执行random.randint(1,100);
         2. 用户总共有5次猜数字的机会;
         3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
         4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
         5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖100万",并且退出循环

    import random

    num = random.randint(1,100)

    print(num)
    for i in range(1,6):
            guess = int(input("plese guess:"))
            if guess > num :
                    print("too big")
            elif guess < num :
                    print("too small")
            else :
                    print("congratulation!!!")
                    exit()
    else:
            print("game over")

    2.while循环语句

    1..while循环使用的语法:

    while 条件语句:
        满足条件执行的语句
    else:
        不满足条件执行的语句

    2.while死循环

    1)while True:
        pass

    2)while 1:  # bool(1)
        pass
    3)while 2>1:
        pass

    3.示例:

    1.求1+2+3+...+100的和

    sum = 0
    i = 1
    while  i <=100:
        sum += i
        i += 1
    print(sum)

    2.猜数字游戏                                                                                              
         1. 系统随机生成一个1~100的数字;
         ** 如何随机生成整型数, 导入模块random, 执行random.randint(1,100);
         2. 用户总共有5次猜数字的机会;
         3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
         4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
         5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖100万",并且退出循环.

    import random
    x = random.randint(1,100)
    #print(x)
    trycount = 0
    while trycount < 5:
            tk = int(input("你猜:"))
            if tk == x:
                    print("恭喜中奖100万")
                    break
            elif tk < x:
                    print("too small")
                    trycount += 1
            else:
                    print("too big")
                    trycount += 1
    else:
            print("没有机会")

    3.用户登陆程序需求:
        1. 输入用户名和密码;
        2. 判断用户名和密码是否正确? (name='root', passwd='westos')
        3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示;

    trycount = 0

    while trycount<=2:
        name = input("用户名:")
        passwd = input("密码:")

        if name == 'westos' and passwd == 'redhat':
            print('登陆成功')
            exit()
        else:    
            trycount+=1
            print('请重新登陆')
    else:
        print("登陆超过三次")

  • 相关阅读:
    一个从MongoDB中导出给定日期范围内数据的shell脚本
    Populate A List Item With Record Group In Oracle Forms Using Populate_List And Create_Group_From_Query Command
    An Example Of Validating Text Item In Oracle Forms Using When-Validate-Item Trigger
    Know How To Use ID_NULL Function To Search An Object In Oracle Forms
    Create XO Checker Game With Oracle Forms
    Using SYSTEM.MOUSE_ITEM In Oracle Forms
    Highlighting Text Item On Entry In Oracle Forms
    How To Tune or Test PLSQL Code Performance in Oracle D2k Forms
    Creating Timer in Oracle D2k / Forms 6i and Displaying a Clock
    Create Timer Example To Show Image Presentation in Oracle Forms
  • 原文地址:https://www.cnblogs.com/LWK5100/p/14246249.html
Copyright © 2011-2022 走看看