zoukankan      html  css  js  c++  java
  • python 基础之第四天

    例子1:

    打印列表每个元素对应的索引

    [root@master script]# vim suoyin.py
    #!/usr/bin/python
    # coding:utf-8
    
    alist = ['fu','shan','hua','hive']
    
    for i in range(len(alist)):
        print '%s:%s' % (i,alist[i])
    
    检验:
    [root@master script]# python suoyin.py
    0:fu
    1:shan
    2:hua
    3:hive
    另外一种方式:
    [root@master script]# vim suoyin.py
    #!/usr/bin/python
    # coding:utf-8
    
    alist = ['fu','shan','hua','hive']
    
    #for i in range(len(alist)):
    #    print '%s:%s' % (i,alist[i])
    
    
    for i in enumerate(alist):
        print '%s:%s' %(i[0],i[1])
    
    检验:
    [root@master script]# python suoyin.py
    (0, 'fu')
    (1, 'shan')
    (2, 'hua')
    (3, 'hive')

    [root@master script]# vim suoyin.py
    #!/usr/bin/python
    # coding:utf-8

    alist = ['fu','shan','hua','hive']

    #for i in range(len(alist)):
    #  print '%s:%s' % (i,alist[i])


    for i in enumerate(alist):
      print '%s:%s' % (i[0],i[1])

    检验:

    [root@master script]# python suoyin.py
    0:fu
    1:shan
    2:hua
    3:hive

    还可以:

    [root@master script]# vim suoyin.py   
    #!/usr/bin/python
    # coding:utf-8
    
    alist = ['fu','shan','hua','hive']
    
    for m,n in enumerate(alist):
        print '%s:%s' % (m,n)
    
    检验:
    [root@master script]# python suoyin.py
    0:fu
    1:shan
    2:hua
    3:hive

    #######列表一些简单用法############

    In [10]: alist = [23,10,45,33]
    
    In [11]: reversed(alist)
    Out[11]: <listreverseiterator at 0x7f44bd7c3910>
    
    In [12]: list(reversed(alist))
    Out[12]: [33, 45, 10, 23]
    
    In [15]: sorted(alist)           #从小到大,升序
    Out[15]: [10, 23, 33, 45]

      In [16]: list(reversed(sorted(alist)))      #降序排列
      Out[16]: [45, 33, 23, 10]

      或者:

      In [18]: sorted(alist)[::-1]

      Out[18]: [45, 33, 23, 10]

    ##########字符串格式化############

    In [19]: '%10s%s' % ('name','fush')     ##'%10s' 右对齐,占是个字符,不够的用空格补上;默认右对齐
    Out[19]: '      namefush'
    
    In [20]: '%10s %s' % ('name','fush')
    Out[20]: '      name fush'
    
    In [21]: '%-10s %s' % ('name','fush')         ##'%-10s' 左对齐,占是个字符,不够的用空格补上

      Out[21]: 'name      fush'

    还有一种不常用的用法:

    1 In [22]: '%*s %*s' % (-20,'name',-8,'fush')    ##在s前面用*号,在后面用数字代替
    2 Out[22]: 'name                 fush    '

    格式化案例:

     1 [root@master script]# vim  huamian.py   
     2 #!/usr/bin/python
     3 # coding:utf-8
     4 
     5 
     6 def get_content():
     7     contents = []
     8     while True:
     9         data = raw_input('<Enter to quit>: ')
    10         contents.append(data)
    11         if not data:
    12             break
    13     return contents
    14 
    15 if __name__ == '__main__':
    16     width = 48
    17     lines = get_content()
    18     lines.pop()
    19     print '+%s+' % ('#' * width)
    20     for line in lines:
    21         if not len(line)%2:
    22             sp_width = (width -len(line)) / 2
    23             print '+%s%s%s+' % (' ' * sp_width,line,' ' * sp_width)
    24         else:
    25             sp_width = (width -len(line)) / 2
    26             print '+%s%s%s +' % (' ' * sp_width,line,' ' * sp_width)
    27     print '+%s+' % ('#' * width)

    改进版:

     1 #!/usr/bin/python
     2 # coding:utf-8
     3 
     4 
     5 def get_content():
     6     contents = []
     7     while True:
     8         data = raw_input('<Enter to quit>: ')
     9         if not data:
    10             break
    11         contents.append(data)
    12     return contents
    13 
    14 if __name__ == '__main__':
    15     width = 48
    16     lines = get_content()
    17     print '+%s+' % ('#' * width)
    18     for line in lines:
    19         sp_width , extra = divmod((width -len(line)),2)
    20         print '+%s%s%s+' % (' ' * sp_width,line,' ' * (sp_width + extra))
    21     print '+%s+' % ('#' * width)
    备注:num1,num2 = divmod(10,2)
    num1 = 10/2 的商
    num2 = 10/2 的余数
    奇数/2 的余数(num2=1)
    偶数/2 的余数(num2=0)

    验证效果:

    1 [root@master script]# python  huamian.py
    2 <Enter to quit>: hello
    3 <Enter to quit>: world!
    4 <Enter to quit>: 
    5 +################################################+
    6 +                     hello                      +
    7 +                     world!                     +
    8 +################################################+

     ##########另外一种格式化#############

    1 >>> import string
    2 >>> data = 'hello $name,I will see you $day'
    3 >>> t = string.Template(data)
    4 >>> t.substitute(name='tony',day='afternoon')
    5 'hello tony,I will see you afternoon'
    6 >>> t.substitute(name='herry',day='afternoon')
    7 'hello herry,I will see you afternoon'

    ###########添加用户和密码以及发邮件通知案例#############

    首先编写一个获取随机密码的文件:

     1 #!/usr/bin/python
     2 # coding:utf-8
     3 
     4 import string
     5 import random
     6 import sys
     7 
     8 
     9 def get_pass():
    10     pwd = ''
    11     for i in range(8):
    12          char = random.choice(string.lowercase + string.uppercase + string.digits)
    13          pwd += char
    14     return pwd
    15 if __name__ == '__main__':
    16     print get_pass()

    正式文件代码:

    [root@master script]# cat adduser.py 
    #!/usr/bin/python
    # coding:utf-8
    
    import sys
    import os
    import ranpass
    import string
    
    contents = """username: ${username}
    password: ${password}
    
    """
    
    t = string.Template(contents)
    
    def adduser(user,pwd,email):
        data = t.substitute(username =user,password = pwd)
        os.system('useradd %s' % username)
        os.system('echo %s |passwd --stdin %s' % (pwd,username))
        os.system('echo -e "%s" |mail -s "user info" %s' % (data,email))
    
    
    if __name__ == '__main__':
        username = sys.argv[1]
        pwd = ranpass.get_pass()
        adduser(username,pwd,'root@localhost')

     检验:

    [root@master script]# chmod +x adduser.py
    [root@master script]# ./adduser.py tiantian useradd: user 'tiantian' already exists Changing password for user tiantian. passwd: all authentication tokens updated successfully. [root@master script]# cat /var/spool/mail/root |more From root@master.localdomain Fri Aug 4 18:32:36 2017 Return-Path: <root@master.localdomain> X-Original-To: root@localhost Delivered-To: root@localhost.localdomain Received: by master.localdomain (Postfix, from userid 0) id 844AE22CD3; Fri, 4 Aug 2017 18:32:36 +0800 (CST) Date: Fri, 04 Aug 2017 18:32:36 +0800 To: root@localhost.localdomain Subject: user info User-Agent: Heirloom mailx 12.4 7/29/08 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20170804103236.844AE22CD3@master.localdomain> From: root@master.localdomain (root) username: tiantian password: GJh4t646 [root@master script]# mail Heirloom Mail version 12.4 7/29/08. Type ? for help. "/var/spool/mail/root": 1 message 1 new >N 1 root Fri Aug 4 18:32 21/635 "user info" & 1 Message 1: From root@master.localdomain Fri Aug 4 18:32:36 2017 Return-Path: <root@master.localdomain> X-Original-To: root@localhost Delivered-To: root@localhost.localdomain Date: Fri, 04 Aug 2017 18:32:36 +0800 To: root@localhost.localdomain Subject: user info User-Agent: Heirloom mailx 12.4 7/29/08 Content-Type: text/plain; charset=us-ascii From: root@master.localdomain (root) Status: R username: tiantian password: GJh4t646 &
  • 相关阅读:
    在线程中使用OpenFileDialog
    Log4net附加
    SQL表间列根据条件复制(赋值)
    DataGridView使用
    Latex使用总结及备忘
    Windows获取文件状态
    TabControl取消首次定位焦点
    C#跨线程调用
    电子词典的查寻程序,发送和接收应答程序
    电子词典的相关子函数db.c程序
  • 原文地址:https://www.cnblogs.com/shanhua-fu/p/7281152.html
Copyright © 2011-2022 走看看