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))
  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/yangjian319/p/8717155.html
Copyright © 2011-2022 走看看