zoukankan      html  css  js  c++  java
  • 第一天 格式化操作符 条件、for、while、break、continue语句 whitesky

    python2和3的区别

    2中的print 不必加括号
    3中的print变为函数 要加括号
     
    2中的input不能输入字母(输入的字母被认为是变量,而之前又没定义,所以报错),默认只能计算数字,要输入字母要用raw_input,否则会报错
    3中的input支持字母和数字的输入,且全部默认为str类型,如果需要计算,要用int转换类型
     
    2中输入中文,要在行首加入# -*- coding:utf-8 -*-
    3中默认支持中文
     
     
    变量:
     Python 中的变量赋值不需要类型声明。

    等号(=)用来给变量赋值。等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值

     
    可以为多个对象指定多个变量。例如:
    a, b, c = 1, 2, "john"

    以上实例,两个整型对象1和2的分配给变量a和b,字符串对象"john"分配给变量c。

     
     

    格式化操作符(%):

    
    
    # 格式化打印字典的key
    
    >>> a = {'type':111, 'table':222}
    >>> print "%(type)s,-----,%(table)s" %a
    111,-----,222
    >>>
    
    

    %s,表示格化式一个对象为字符

    %d,表示格式化一个对象为整数

    例:print ('hello, %s' % 'zhang3')
    #结果:hello, zhang3

    例:print ('hello, %d' % 3)
    #结果:hello, 3
     
    例:print ('hello, %s:%d' % ('ab',3))
    #结果:hello, ab:3
     
     例:
     msg = '''
    information of below person :
    name: %s
    age: %d
    job: %s
    ''' %('whitesky',25,'IT') #此处%()不能换行
    print (msg)
     

    Python的字符串格式化有两种方式: 百分号方式、format方式

    百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存。[PEP-3101]

    This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator.

    1、百分号方式

    %[(name)][flags][width].[precision]typecode

    (name) 可选,用于选择指定的key
    flags 可选,可供选择的值有:
    + 右对齐;正数前加正好,负数前加负号;
    - 左对齐;正数前无符号,负数前加负号;
    空格 右对齐;正数前加空格,负数前加负号;
    0 右对齐;正数前无符号,负数前加负号;用0填充空白处
    width 可选,占有宽度
    .precision 可选,小数点后保留的位数
    typecode 必选
    s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置
    r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置
    c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置
    o,将整数转换成 八 进制表示,并将其格式化到指定位置
    x,将整数转换成十六进制表示,并将其格式化到指定位置
    d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置
    e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)
    E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)
    f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)
    F,同上
    g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)
    G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)
    %,当字符串中存在格式化标志时,需要用 %%表示一个百分号
    注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式

    常用格式化:

    tpl = "i am %s" % "alex"
    
    tpl = "i am %s age %d" % ("alex", 18)
    
    tpl = "i am %(name)s age %(age)d" % {"name": "alex", "age": 18}
    
    tpl = "percent %.2f" % 99.97623
    
    tpl = "i am %(pp).2f" % {"pp": 123.425556, }
    
    tpl = "i am %.2f %%" % {"pp": 123.425556, }

    2、Format方式
    [[fill]align][sign][#][0][width][,][.precision][type]

    fill 【可选】空白处填充的字符
    align 【可选】对齐方式(需配合width使用)
    <,内容左对齐
    >,内容右对齐(默认)
    =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字
    ^,内容居中
    sign 【可选】有无符号数字
    +,正号加正,负号加负;
    -,正号不变,负号加负;
    空格 ,正号空格,负号加负;
    # 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示
    , 【可选】为数字添加分隔符,如:1,000,000
    width 【可选】格式化位所占宽度
    .precision 【可选】小数位保留精度
    type 【可选】格式化类型
    传入” 字符串类型 “的参数
    s,格式化字符串类型数据
    空白,未指定类型,则默认是None,同s
    传入“ 整数类型 ”的参数
    b,将10进制整数自动转换成2进制表示然后格式化
    c,将10进制整数自动转换为其对应的unicode字符
    d,十进制整数
    o,将10进制整数自动转换成8进制表示然后格式化;
    x,将10进制整数自动转换成16进制表示然后格式化(小写x)
    X,将10进制整数自动转换成16进制表示然后格式化(大写X)
    传入“ 浮点型或小数类型 ”的参数
    e, 转换为科学计数法(小写e)表示,然后格式化;
    E, 转换为科学计数法(大写E)表示,然后格式化;
    f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
    F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;
    g, 自动在e和f中切换
    G, 自动在E和F中切换
    %,显示百分比(默认显示小数点后6位)

    常用格式化:

    tpl = "i am {}, age {}, {}".format("seven", 18, 'alex')
    
    tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex'])
    
    tpl = "i am {0}, age {1}, really {0}".format("seven", 18)
    
    tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18])
    
    tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18)
    
    tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18})
    
    tpl = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])
    
    tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1)
    
    tpl = "i am {:s}, age {:d}".format(*["seven", 18])
    
    tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18)
    
    tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18})
    
    tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
    
    tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)
    
    tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)
    
    tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

    更多格式化操作:https://docs.python.org/3/library/string.html

     
     
     
     print用法:
     
    print()函数可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出

    print()会依次打印每个字符串,遇到逗号“,”会输出一个空格,因此,输出的字符串是这样拼起来的:

    print-explain

     

    条件语句

     Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。

    Python 编程中 if 语句用于控制程序的执行,基本形式为:

    if 判断条件:
        执行语句……
    else
        执行语句…

    其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。else 为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。

    if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。当判断条件为多个值时,可以使用以下形式:

    if 判断条件1:
        执行语句1……
    elif 判断条件2:
        执行语句2……
    elif 判断条件3:
        执行语句3……
    else:
        执行语句4……

    如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
     
    # 判断值是否在0~5或者10~15之间
    if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):    
        print 'hello'
    else:
        print 'undefine'
    >>> undefine		# 输出结果


    While循环语句

    while 判断条件:
        执行语句……

    执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。当判断条件假false时,循环结束。

    实例:

    #!/usr/bin/python
    
    count = 0
    while (count < 9):
       print 'The count is:', count
       count = count + 1
    
    print "Good bye!"


    while 语句时还有另外两个重要的命令 continue,break 来跳过最内层循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:
    # continue 和 break 用法
    
    i = 1
    while i < 10:   
        i += 1
        if i%2 > 0:     # 非双数时跳过输出
            continue
        print i         # 输出双数2、4、6、8、10
    
    i = 1
    while 1:            # 循环条件为1必定成立
        print i         # 输出1~10
        i += 1
        if i > 10:     # 当i大于10时跳出循环
            break

     循环中的else 语句:

    在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

    另:循环中的else语句,只有当循环终止才会被执行,但是,如果循环终止是由break跳出导致的,则else不会执行

    #!/usr/bin/python
    
    count = 0
    while count < 5:
       print count, " is  less than 5"
       count = count + 1
    else:
       print count, " is not less than 5"

    以上实例输出结果为:
    0 is less than 5
    1 is less than 5
    2 is less than 5
    3 is less than 5
    4 is less than 5
    5 is not less than 5

    for 循环语句

    Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

    语法:

    for循环的语法格式如下:

    for iterating_var in sequence:
       statements(s)

    实例:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    for letter in 'Python':     # 第一个实例
       print '当前字母 :', letter
    
    fruits = ['banana', 'apple',  'mango']
    for fruit in fruits:        # 第二个实例
       print '当前字母 :', fruit
    
    print "Good bye!"

    循环中的 else 语句

    在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

    如下实例:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    for num in range(10,20):  # 迭代 10 到 20 之间的数字
       for i in range(2,num): # 根据因子迭代
          if num%i == 0:      # 确定第一个因子
             j=num/i          # 计算第二个因子
             print '%d 等于 %d * %d' % (num,i,j)
             break            # 跳出当前循环
       else:                  # 循环的 else 部分
          print num, '是一个质数'

    以上实例输出结果:

    10 等于 2 * 5
    11 是一个质数
    12 等于 2 * 6
    13 是一个质数
    14 等于 2 * 7
    15 等于 3 * 5
    16 等于 2 * 8
    17 是一个质数
    18 等于 2 * 9
    19 是一个质数

    break 语句

    break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。break语句用在while和for循环中。

    实例:

    #!/usr/bin/python
    
    for letter in 'Python':     # First Example
       if letter == 'h':
          break
       print 'Current Letter :', letter
      
    var = 10                    # Second Example
    while var > 0:              
       print 'Current variable value :', var
       var = var -1
       if var == 5:
          break
    
    print "Good bye!"

    以上实例执行结果:

    Current Letter : P
    Current Letter : y
    Current Letter : t
    Current variable value : 10
    Current variable value : 9
    Current variable value : 8
    Current variable value : 7
    Current variable value : 6
    Good bye!

    continue 语句

    Python continue 语句跳出本次循环,而break跳出整个循环。

    continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

    continue语句用在while和for循环中。

    实例:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    
    for letter in 'Python':     # 第一个实例
       if letter == 'h':
          continue
       print '当前字母 :', letter
    
    var = 10                    # 第二个实例
    while var > 0:              
       var = var -1
       if var == 5:
          continue
       print '当前变量值 :', var
    print "Good bye!"

    以上实例执行结果:

    当前字母 : P
    当前字母 : y
    当前字母 : t
    当前字母 : o
    当前字母 : n
    当前变量值 : 9
    当前变量值 : 8
    当前变量值 : 7
    当前变量值 : 6
    当前变量值 : 4
    当前变量值 : 3
    当前变量值 : 2
    当前变量值 : 1
    当前变量值 : 0
    Good bye!
     
     
  • 相关阅读:
    [CF600E]Lomsat gelral
    [BZOJ3237]连通图
    [CF580D]Kefa and Dishes
    [BZOJ4726]Sabota?
    bzoj2120&&2453 -- 带修改莫队
    bzoj4726 [ POI2017 ] -- 树形DP
    bzoj2809 [ APIO2012 ] -- 主席树
    bzoj4216 -- 分块
    bzoj4173 -- 欧拉函数
    bzoj2982 -- Lucas定理
  • 原文地址:https://www.cnblogs.com/yum777/p/6059609.html
Copyright © 2011-2022 走看看