• python学习笔记-练手实例


    1、题目:输出 9*9 乘法口诀表。
        程序分析:分行与列考虑,共9行9列,i控制行,j控制列
        代码:
    for i in range(1,10):
        print ('
    ')
        for j in range(1,i+1):
            print "%d*%d=%d"  %(i,j,i*j) ,

    2、题目:有两个磁盘文件A和B,各存放一行字母,把这两个文件中的信息合并(按字母顺序排列), 输出到一个新文件C中

        代码:

    fo=open("/Users/chichi/Documents/pythonscript/python学习/练手实例/a.txt")
    str1=fo.read()
    
    fo2=open("/Users/chichi/Documents/pythonscript/python学习/练手实例/b.txt")
    str2=fo2.read()
    
    str3=list(str1+str2)
    str3.sort()
    s=''
    s=s.join(str3)
    
    fo3=open("/Users/chichi/Documents/pythonscript/python学习/练手实例/c.txt","a+")
    fo3.write(s)

    3、题目:从键盘输入一些字符,逐个把它们写到磁盘文件上,直到输入一个 # 为止

        代码:

    def fo():
        str=''
        fo2=open("/Users/chichi/Documents/pythonscript/python学习/练手实例/d.txt","w")
        while "#" not in str:
            fo2.write(str)
            str=raw_input("请输入内容:")
            
    fo()
          

    4、题目:假设我们有一份文件,文件中包含了很多个人信息。现在需要一份去除其中敏感信息的版本,将文件中所有手机号的4~7位和身份证号的6~15位用 * 替换

        代码:

    #coding=utf-8
    
    import re
    def remove(data, i, line, regex, left, right):
        m=re.search(regex,line)
    #re.search(pattern, string[, flags]) 若string中包含pattern子串,则返回Match对象,否则返回None,注意,如果string中存在多个pattern子串,只返回第一个
        if m:
            digits = m.group(0)
            start, end = m.start(0), m.end(0)
            data[i]=line[:start+left] + '*' * (right-left+1)+ line[start+right+1:]
            return True
        return False
    
    infile='/Users/chichi/Documents/pythonscript/python学习/练手实例/info.txt'
    outfile='/Users/chichi/Documents/pythonscript/python学习/练手实例/outfile.txt'
    with open(infile) as fr:
        data=fr.readlines()
    
    regex_id='(d{18}|d{17}x)'
    regex_phone='1d{10}'
    for i, line in enumerate(data):
        status = remove(data, i, line, regex_id, 5, 14)
        if not status:
            status = remove(data, i, line, regex_phone, 3, 6)
    
    with open(outfile, 'w') as fw:
        for line in data:
            fw.write(line)
    
    #enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中

    5、题目:从控制台输入或从文件中读入一段文本,统计出其中每个字符出现的次数,并按照出现次数排序输出

        代码:

        #range() 函数可创建一个整数列表,一般用在 for 循环中
            #语法:range(start, stop[, step])
            #参数说明:
            #start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
            #stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
            #step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
        #list.count(obj)    统计某个元素在列表中出现的次数
        #list.append(obj)   在列表末尾添加新的对象
    #方式一
    def countstr():
        stra=raw_input("请输入一串英文字符:")
        list=[]
        for i in range(len(stra)):
            num=str(stra.count(stra[i]))
            strb=stra[i]+":"+num
            if strb not in list:
                list.append(strb)
        print list
    
    countstr()   
          
    
    """
    str=raw_input("请输入一个字符串:")
    res={}
    for i in str:      
        if  i  in res:            
            res[i]=res[i]+1   
        else:           
            res[i]=1
    print(res)
    """

    6、题目:随机生成5个长度为6的优惠码

    #方式一
    import  random
    def creat_num(num,long):
        str = 'qwertyuiopasdfghjklzxcvbnm1234567890'
        b = []
        for i in range(num):
            a = ''
            for j in range(long):
                a = a+random.choice(str)
            b.append(a)
        return b
    
    print creat_num(5,6)
    
    """
    
    import random
    stra='abcdefghijklmnopqrstuvwxyz0123456789'
    def create_num(num,long):
        for i in range(num):
            a=''
            for j in range(long):
                a=a+random.choice(stra)
            print a
    
    create_num(7,8)

    7、题目:人民币转换

    # -*- coding: UTF-8 -*-
    dollarClass="{}元"
    hornClass="{}元{}角"
    centClass="{}元{}角{}分"
    
    def convert(input):
        data = input.split(".")
        if 1==len(data):
            return dollarClass.format(data[0])
        elif 2==len(data):
            if 1==len(data[1]):
                return hornClass.format(data[0],data[1])
            elif 2==len(data[1]):
                horn=data[1]
                return centClass.format(data[0],horn[0],horn[1])
            else:
                return "没有比分更少了哦"
        else:
            return "这是外星货币哦"
    
    print(convert("134.27"))
    print(convert("34.27"))
    print(convert("34.2"))
    print(convert("34"))
    print(convert("0.23"))
    print(convert(".23"))
    print(convert("0.234"))
    print(convert("0.234.1"))
    print(convert("0.234.1"))
  • 相关阅读:
    mysqldump数据库转储
    Docker安装Mysql挂载目录时报错:Entrypoint script for MySQL Server 5.7.31-1debian10 started.
    SpringBoot缓存——基本环境搭建
    SpringBoot使用缓存报错java.lang.IllegalStateException: No cache could be resolved for 'Builder[public com.example.bean.Employee
    springboot集成JPA返回Json报错 com.fasterxml.jackson.databind.exc.InvalidDefinitionException
    HTTP定义的8种请求类型
    centos下使用docker方式安装minio,运行时报错Unable to write to the backend解决
    Spring Boot @PropertySource 加载指定yaml配置文件获取不到配置的解决方法
    npm与cnpm的区别
    MySQL day03
  • 原文地址:https://www.cnblogs.com/chengchengla1990/p/9100622.html
Copyright © 2020-2023  润新知