栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python-复习总结

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-复习总结

catalogue
  • python
    • Python 计算思维训练——循环与列表(一)
    • Python基础之综合练习一
    • Python 入门之玩转列表
    • Python 计算思维训练——字典和字符串(一)
    • Python程序设计_2_关系运算符与选择语句
    • Python 入门之控制结构 - 循环结构
    • Python—序列型数据操作实训
    • python基础(5-2)列表、元组、字典、集合——元组
        • 编程要求
        • 测试说明
    • Python正则表达式
      • 1
      • 2
          • compile()函数
          • match()函数
          • search()函数
      • 3
          • finditer()函数
          • split()函数
          • sub()函数
          • subn()函数
    • Python 计算思维训练——文件操作与异常处理
      • rstrip
    • 描述
    • 语法
      • try-except
      • raise
      • else
      • 例题

python Python 计算思维训练——循环与列表(一)
s="%.8f"%sum 指定小数输出
Python基础之综合练习一

输出列表的最小公倍数

class Solution():
    def get_lcm(self, x):
        def gcd(a, b):
            return gcd(b, a % b) if a % b else b

        def lcm(a, b):
            return a * b // gcd(a, b)

        for i in range(len(x) - 1):
            x[i + 1] = lcm(x[i], x[i + 1])
        return x[-1]
        pass

里面的知识点l=[int(i) for i in input().split(",") ]获取输入列表

x[-1]或者pop可以获取最后一个元素,pass表占位,啥都不做

文件操作

文件打开排序输出到新文件里

```
map(func,list)=literable 做映射 返回迭代器

```
class Solution():
    def solve(self, file_1, file_2, file_3):
        '''
        :type file_1, file_2, file_3: str
        :rtype : None
        '''
        #请在此添加代码,实现将文件file_1和file_2中的数字按从小到大的顺序,写入文件file_3中
        #********** Begin *********#
        ls1=[]
        with open(file_1,"r+") as f1:
            ls1.extend(list(map(lambda x:int(x),f1.readlines())))
        with open(file_2,"r+") as f2:
            ls1.extend(list(map(lambda x:int(x),f2.readlines())))
        ls1.sort()
        with open(file_3,"w+") as f3:
            for line in ls1:
                f3.write(str(line)+'n')
        f1.close()
        f2.close()
        f3.close()
        ##********** End *********#
Python 入门之玩转列表
range()函数,能够用来生成一系列连续增加的数字。
Python 计算思维训练——字典和字符串(一)

可视化股票数据

import matplotlib as mpl
mpl.use("Agg") # 用处,在pycharm中不显示绘图
import matplotlib.pyplot as plt
import datetime # 对时间操作的一个库

def Draw():
    apple = "step3/AAPL.csv"
    google = "step3/GOOG.csv"
    ms = "step3/MSFT.csv"
    save="step3/output/data.png"
    plt.xticks(rotation=45) # 旋转标签角度

    appdata,appopen=Read(open(apple))
    plt.plot(appdata,appopen,color='red',linewidth=1.0,label='apple')
    googdata, googopen = Read(open(google))
    plt.plot(googdata, googopen, color='green', linewidth=1.0, label='google')
    msdata, msopen = Read(open(ms))
    plt.plot( msdata, msopen, color='blue', linewidth=1.0, label='ms')

    plt.legend(["Apple","Google","Microsoft"])
    plt.ylabel("Open")
    plt.savefig(save)


def Read(file):
    data=[]
    open=[]
    file.readline()
    for line in file.readlines():
        idx1=line.find(",")
        dt=datetime.datetime.strptime(line[0:idx1],"%Y-%m-%d") # strptime函数根据指定的格式把一个时间字符串解析为时间元组。
        data.append(dt)
        idx2=line.find(",",idx1+1,len(line))
        open.append(float(line[idx1+1:idx2]))
    file.close()
    return data,open
Python程序设计_2_关系运算符与选择语句

对于按空格输入的数转换成列表

list(map(int,input().split()))
Python 入门之控制结构 - 循环结构

迭代器iterator

iter() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 next() 方法并通过 StopIteration 异常标识迭代的完成。

next() 方法(Python 2 里是 next())会返回下一个迭代器对象。

Iterator=iter(List) 将iterable转换成iterator
num=next(Iterator)  next方法获取下一个迭代器
Python—序列型数据操作实训

join方法

str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
python基础(5-2)列表、元组、字典、集合——元组 编程要求

在右侧编辑器中补充代码,具体要求如下:

  1. 测试数据内是该盘点期限内的所有订单列表数据,程序开始会将其读入列表list1中;
  2. 由于记录员的失误,有可能会在list1中存在相同的订单编号,要求程序将相同的编号删除并按原始顺序记录将所有不同订单编号列表转成元组并输出。
  3. 输出该盘点周期内完成最多的订单的是哪一天。
测试说明

平台会对你编写的代码进行测试,比对你输出的数值与实际正确数值,只有所有数据全部计算正确才能通过测试,程序运行过程如下:

程序开始会将其读入到list1中,list1:[1801020001,1801020002,1801030001,1801020002,1801030002,1801030003,1801040001]。

第一步:大家编写的程序需要在list1中去掉重复元素[180102002]并按顺序转换为元组输出:(1801020001,1801020002,1801030001,1801030002,1801030003,1801040001);

第二步:大家需要按规则查找元组中每个元素,根据日期和订单数量进行比较,得出单日最大订单数量是180103,订单为3个,输出这个数字即可:180103。

测试输入:

1801020001180102000218010300011801020002180103000218010300031801040001

预期输出:

(1801020001,1801020002,1801030001,1801030002,1801030003,1801040001)180103

解答:

list1 = []
for i in range(7):
    order= input()
    list1.append(order)

list0=list(set(list(map(lambda x:int(x),list1))))#将list1映射为int型后由map型转换成list型 再转换成set型去重最后换回list
list0.sort()
list0=list(map(lambda x:str(x),list0))#映射回str
tup1=tuple(list0)
print(tup1)

list2=[]
for i in list0:
    list2.append(i[0:6])

# 巧妙的统计列表里最大个数的办法
maxlabel=max(list2,key=list2.count)# list.count(obj) 统计obj对象的个数
print(maxlabel)
Python正则表达式 1

匹配

import re
text = input()
#********** Begin *********#
#1.匹配字符单词 Love
print(re.findall(r'Loveb',text))# 正则表达式前的 r 表示原生字符串(rawstring)避免了多次转义带来的反斜杠困扰
#2.匹配以 w 开头的完整单词
print(re.findall(r'bww*b',text)) # w 表示单词字符 * 0-多 ?可有可无
#3.查找三个字母长的单词(提示:可以使用{m,n}方式)
print(re.findall(r'bw{3}b',text))
#********** End **********#
2 compile()函数

编译正则表达式模式,返回一个对象的模式(可以把那些常用的正则表达式编译成正则表达式对象,这样可以提高一点效率)。

格式:re.compile(pattern,flags=0)

match()函数

在字符串刚开始的位置匹配,在开头匹配到目的字符便返回,如果开头没有目的字符将匹配失败,返回None。

格式:re.match(pattern, string, flags=0)

注:match()函数返回的是一个match object对象,而match object对象有以下方法:

  • group():返回被正则匹配的字符串;
  • start():返回匹配开始的位置;
  • end():返回匹配结束的位置;
  • span():返回一个元组包含匹配 (开始,结束) 的位置;
  • groups():返回正则整体匹配的字符串,可以一次输入多个组号,对应组号匹配的字符串。
search()函数

re.search()函数会在字符串内查找模式匹配,只要找到第一个匹配然后返回。如果字符串没有匹配,则返回None。

格式:re.search(pattern, string, flags=0)

import re
text = input()
#********** Begin *********#
#1.用compile方法,匹配所有含字母i的单词
cp=re.compile(r'bw*iw*b')
print(re.findall(cp,text))
#2.在字符串起始位置匹配字符The是否存在,并返回被正则匹配的字符串
print(re.match("The",text).group())

#3.在整个字符串查看字符is是否存在,并返回被正则匹配的字符串
print(re.search("is",text).group())

#********** End **********#
3 finditer()函数

搜索字符串,返回一个Match对象的迭代器(包含匹配的开始和结束的位置,如下图中的i所示)。找到正则匹配的所有子串,把它们作为一个迭代器返回。

格式:re.finditer(pattern, string, flags=0);

split()函数

按照能够匹配的子串,将string分割后返回列表。

格式:re.split(pattern, string);

可以使用re.split来分割字符串,如:re.split(r's+', text)将字符串,按空格分割成一个单词列表。

sub()函数

使用re替换string中每一个匹配的子串后,返回替换后的字符串。

格式:re.sub(pattern, repl, string, count);

subn()函数

返回替换次数。

格式:subn(pattern, repl, string, count=0, flags=0); 解释:用A替换123中的1,结果为A23,repl就是指的A。

把所有的数字替换为A:

print(re.subn('d','A','1asd2dkjf34'))

import re
text = input()
#********** Begin *********#
#1.匹配以t开头的所有单词并显示
it=re.finditer(r'btw+b',text)
for i in it:
    print(i.group())
#2.用空格分割句子
print(re.split(' ',text))
#3.用‘-’代替句子中的空格
print(re.sub(' ','-',text))
#4.用‘-’代替句子中的空格,并返回替换次数
print(re.subn(' ','-',text))
#********** End **********#
Python 计算思维训练——文件操作与异常处理 rstrip 描述

Python rstrip() 删除 string 字符串末尾的指定字符(默认为空格).

语法

rstrip()方法语法:

str.rstrip([chars])

题目

#输入n
n = int(input())

with open('src/Step1/test.txt') as file_object:
    lines = file_object.readlines()

# 请在此添加代码,实现编程要求
#********** Begin *********#
for i in range(n):
    print(lines[i].rstrip())

#********** End **********#
try-except

try-except代码块的作用就是当try代码块中的程序代码运行没有错误,则跳过except代码块;反之如果try代码块中的程序代码运行出现错误,则运行except代码块中的内容,一般except代码块中的内容都是输出错误信息。

raise

除了系统自动抛出异常外,程序员也可以通过 Python 的raise显式抛出自己的包含特定信息的异常。一旦执行了raise语句,raise之后的语句将不能执行。

else

可以在try-except代码块后面添加try代码块,当try代码块中的程序运行没有异常时,程序将运行else代码块中的内容,例如:

例题
#coding=utf-8
import math

a = int(input())

try:
    if a<0:
        raise ValueError("We can't take a root by minus ")
    answer = math.sqrt(a)

except ValueError as e:
    print("trigger abnormal "+repr(e)) # repr() 函数将对象转化为供解释器读取的形式。
else:
    print(math.sqrt(a))

result

trigger abnormal ValueError("We can't take a root by minus ")
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422690.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号