秃头的一天

  1. 以下实例 x 为 0-99 取一个数,y 为 0-199 取一个数,如果 x>y 则输出 x,如果 x 等于 y 则输出 x+y,否则输出y。

    #!/usr/bin/python3
    import random
    
    x = random.choice(range(100))
    y = random.choice(range(200))
    if x > y:
        print('x:',x)
    elif x == y:
        print('x+y:', x + y)
    else:
        print('y:',y)
  2. 数字猜谜游戏优化

    print('二、数字猜谜游戏')
    print('数字猜谜游戏!')
    
    a = 1
    i = 0
    while a != 20:
       a = int (input ('请输入你猜的数字:'))
       i += 1    
       if a == 20:
          if i<3:
             print('真厉害,这么快就猜对了!')
          else :
             print('总算猜对了,恭喜恭喜!')
       elif a < 20:
          print('你猜的数字小了,不要灰心,继续努力!')
       else :
          print('你猜的数字大了,不要灰心,继续加油!')
  3. #!/usr/bin/python3
    
    # 继续扩展,加入用户提示判断是否退出还是继续
    
    print("=======欢迎进入狗狗年龄对比系统========")
    control = "N"
    while control=="N":
        try:
            age = int(input("请输入您家狗的年龄:"))
            #print(" ")
            age = float(age)
            if age < 0:
                print("您在逗我?")
            elif age == 1:
                print("相当于人类14岁")
                #break
            elif age == 2:
                print("相当于人类22岁")
                #break
            else:
                human = 22 + (age - 2)*5
                print("相当于人类:",human)
                #break
        except ValueError:
            print("输入不合法,请输入有效年龄")
        print("")
        control = input("退出(Y/N)?")
        print("")
    ###退出提示
    input("点击 enter 键退出")
  4. 条件为假:0, false, '', None, 例子如下:

    >>> a=0
    >>> if a:
    ...     print(11)
    ... else:
    ...     print(22)
    ...
    22
    
    >>> a=None
    >>> if a:
    ...     print(11)
    ... else:
    ...     print(22)
    ...
    22
    >>>

    条件为真:不为 0, True, 'None', 字符串不为空串

    >>> a=2
    >>> if a:
    ...     print(11)
    ... else:
    ...     print(22)
    ...
    11
    >>> a="None"
    >>> if a:
    ...     print(11)
    ... else:
    ...     print(22)
    ...
    11
    >>> a='bbbb'
    >>> if a:
    ...     print(11)
    ... else:
    ...     print(22)
    ...
    11
    >>>
  5. 使用判断语句来实现 BMI 的计算。

    BMI 指数(即身体质量指数,简称体质指数又称体重,英文为 Body Mass Index,简称BMI),是用体重公斤数除以身高米数平方得出的数字

    #!/usr/bin/env python3
    
    print('----欢迎使用BMI计算程序----')
    name=input('请键入您的姓名:')
    height=eval(input('请键入您的身高(m):'))
    weight=eval(input('请键入您的体重(kg):'))
    gender=input('请键入你的性别(F/M)')
    BMI=float(float(weight)/(float(height)**2))
    #公式
    if BMI<=18.4:
        print('姓名:',name,'身体状态:偏瘦')
    elif BMI<=23.9:
        print('姓名:',name,'身体状态:正常')
    elif BMI<=27.9:
        print('姓名:',name,'身体状态:超重')
    elif BMI>=28:
        print('姓名:',name,'身体状态:肥胖')
    import time;
    #time模块
    nowtime=(time.asctime(time.localtime(time.time())))
    if gender=='F':
        print('感谢',name,'女士在',nowtime,'使用本程序,祝您身体健康!')
    if gender=='M':
        print('感谢',name,'先生在',nowtime,'使用本程序,祝您身体健康!')
  6. 下表列出了不同数值类型的 true 和 false 情况:

    类型FalseTrue
    布尔 False(与0等价) True(与1等价)
    数值 0,   0.0 非零的数值
    字符串 '',  ""(空字符串) 非空字符串
    容器 [],  (),  {},  set() 至少有一个元素的容器对象
    None None 非None对象
  7. if 的两种格式:

    可以括号限定代码域,加强代码可读性。

    name ="pag"
    
    if name == "pag":
      print(name=="pag")   # True
    
    if (name == "pag"):{
      print(name == "pag") # True
    }

    if 可以括号限定代码域,加强代码可读性。

    这种说法是不正确的,python 代码块只有缩进。

    不妨把花括号里面多加一行,就发现会报错:

    if (name == "pag"):{
      print(name == "pag")
      print("line 2 of if condition")
    }

    报错信息:

      File "test.py", line 4
        print("line 2 of if condition")
            ^
    SyntaxError: invalid syntax

    而 if 后花括号一条 print 语句之所以没报错,是因为花括号括起来的是一个集合,相当于条件为 True 的时候定义一个集合,我们不妨以相似的方式定义两个集合 aa,bb。

    name = "pag"
    aa={print(name == "pag")}
    bb={print(name == "pag"),"BBBB"}
    print(aa)
    print(bb)

    输出结果如下:

    True
    True
    {None}
    {'BBBB', None}
  8. 取随机数扩展。取随机数直到两数相等,显示取数次数。

    import random
    x = random.choice(range(100))
    y = random.choice(range(100))
    b,c = x,y
    a = 1
    print(x,y)
    while x != y:
     if x > y:
        print('x:',x)
     elif x == y:
        print('x+y:', x + y,'totall cal ',a,'times')
     else:
        print('y:',y)
     x = random.choice(range(100))
     y = random.choice(range(100))
     a = a+1
    print('initialized data:',b,c,'x+y:', x + y,'total cal ',a,'times')
  9.  elif 还不会执行到,优化如下:

    import random
    a = 0
    while True:    
        x = random.choice(range(100))
        y = random.choice(range(100))
        a = a+1    
        if x > y:        
            print(x,'>',y)
        elif x < y:        
            print(x,'<',y)
        else:        
            print('x=y=', x, 'total cal ', a, 'times')
            break
  10. 如果 if 语句中的条件过长,可以用接续符 \ 来换行。

    例如:

    if 2>1 and 3>2 and 4>3 and \
        5>4 and 6>5 and 7>6 and \
        8>7:
        print("OK")

    注意: \ 后的一行要缩进没有要求,可无序缩进,但我们保持代码的可读性一般设置同样的缩进格式。

  11. 实例:

    # 查询 n 到 m 间的所有素数
    def find_prime_number(n, m):
        if isinstance(n, int) and isinstance(m, int):
            if m <= 1:
                return "error range"
            if 1 >= n > m:
                return "error start"
            numbers = list()
            num = n
            while num <= m:
                i = 2
                while i < num:
                    if (num % i == 0) and (num != i):
                        break
                    else:
                        i += 1
                if num == i:
                    numbers.append(num)
                num += 1
            return numbers
        else:
            return "error input"
    print(find_prime_number(1, 100))
  12. if...elif...else 的多个语句块中只会执行一个语句块,例如:

    age = int(input("请输入你家狗狗的年龄: "))
    print("")
    if age <= 0:
        print("你是在逗我吧!")
    elif 1 <= age <=2:      #与下一个elif条件重复,只执行符合条件的第一个语句块
        print("相当于 14 岁的人。")
    elif age == 2:
        print("相当于 22 岁的人。")
    elif age > 2:
        human = 22 + (age - 2) * 5    print("对应人类年龄: ", human)

    因此,在写 elif 条件时一定要做到互不重复。

posted @ 2020-12-07 21:44  亓浩  阅读(209)  评论(0)    收藏  举报