zoukankan      html  css  js  c++  java
  • Python条件判断if、for、while

    if条件判断

    if 条件判断:
    
        逻辑操作......
        ......

    判断字符串是否为空

    if a.strip():  #表示字符串不为空
        pass

    判断是否为字典

    d = dict(a=1)
    if isinstance(d,dict):
        print("{0} is a dict".format(d))

    例子:

    age = input("Please input your age: ")
    if age.strip():
        if age.strip().isdigit():    # str.isdigit() 检查字符串是否只由数字组成
            if int(age) >= 18:
                print("你是一个成年人!")
            else:
                print("你还是一个小屁孩!")
        else:
            print("你输入的不是数字!")
    else:
        print("你输入的年龄不符合要求")
    if 条件判断:
        逻辑操作......
        ......
    elif 条件判断:
        逻辑操作......
        ......
    else:
        逻辑操作......

    例子:

    number = input("Please input a number: ")
    if int(number) > 0:
        print("{0} 是正数".format(number))
    elif int(number) < 0:
        print("{0} 是负数".format(number))
    else:
        print("输入的数字是{0}".format(number))

    while循环

    while 条件判断:
        逻辑操作......
        ......

    例子:

    a = 100
    while a >= 1:
        print(a)
        a -= 1

    while中使用break和continue

    while 1: 这个比while True效率高,因为1更接近与机器编码格式
    break 满足某个条件时,立即结束当前循环
    continue 跳过当前循环的剩余语句,继续进行下一轮循环

    例子:

    while 1:
        age = input("Please input your age: ")
        if age.strip():
            if age.strip().isdigit():
                if int(age) >= 18:
                    print("你是一个成年人!")
                    break    # 遇到break就会终止,break之后的语句就都不会执行了
                else:
                    print("你还是一个小屁孩!")
                    break
            else:
                print("你输入的不是数字!")
        else:
            print("你输入的年龄不符合要求,请重新输入")
            continue   # 遇到continue会跳出本次循环,进入下一次循环

    九九乘法表

    分析:
    1  1x1=1
    2  1x2=2 2x2=4
    3  1x3=3 2x3=6 3x3=9
    
    a x b = a*b
    a最小是1,最大为行号
    b等于行号
    
    代码如下:
    for b in range(1, 10):
        for a in range(1, b+1):
            print("{0}x{1}={2}".format(a,b,a*b),end="  ")  # python3中的空格  end=""
            if a == b:
                print()  # 相当于换行
    
    还有一种一行写法:
    print('
    '.join(' '.join("{0}x{1}={2}".format(x, y, x*y) for x in xrange(1, y+1) )for y in xrange(1, 10)))
    练习1:
    输入一行字符,分别统计出其中的英文字母、空格、数字和其他字符个数。
    '''
    str.isdigit()  检查字符串是否只由数字组成
    str.isalpha()  检查字符串是否只由字母组成
    str.isspace()  检查字符串是否只由空格组成
    '''
    something = input("请随便输入一些内容: ")
    while len(something) > 0:
        digit, letters, space, other = 0, 0, 0, 0
        for i in something:
            if i.isdigit():
                digit += 1
            elif i.isalpha():
                letters += 1
            elif i.isspace():
                space += 1
            else:
                other += 1
        print("数字有:{0}个
    英文字母有:{1}个
    空格有:{2}个
    其他字符有:{3}个".format(digit,letters,space,other))
        break
    练习2:
    输入一个数,求它的阶乘。
    num = int(input("请输入一个数字: "))
    factorial = 1
    if num < 0:
        print("负数没有阶乘")
    elif num == 0:
        print("0 的阶乘为 1")
    else:
        for i in range(1, num + 1):
            factorial = factorial * i
        print("{0} 的阶乘为:{1}".format(num, factorial))
  • 相关阅读:
    那么 Appium 到底是怎么工作的呢?
    最小的 Velocity 教程
    CentOS 7 使用经验(更新中)
    [TL-WR841N V5~V9] 如何当作无线交换机使用?
    VS2012打包部署Winform程序
    ASP.NET 应用程序生命周期概述[转自MSDN]
    (翻译)从底层了解ASP.NET体系结构 [转]
    .NET在IE9中页面间URL传递中文变成乱码的解决办法
    终于把你必须知道的.NET看完了
    装箱与拆箱的操作与内存管理
  • 原文地址:https://www.cnblogs.com/yangjian319/p/8717155.html
Copyright © 2011-2022 走看看