2021-03-05二级学习

2021-03-05  本文已影响0人  Cipolee
def revolution_reverse(li,k):
    return li[k:]+li[:k]

简单实现方式,可以找到结果的规律,每步细节可以不实现

列表删除特定元素可以使用列表推导式+if语句

  1. compile产生正则表达式对象
    match函数,匹配函数
    re.match(pattern,string,flags=0)

正则表达式关键点是先通过re.compile(正则表达式)生成一个正则对象

正则表达式可以是raw string原始字符串所以可以加上r

#简单的正则表达式实例
import re
t=re.compile('\d+')
print(t.findall('123sdfg123 3'))
结果

正则语法实例

pta二级题

得到“答案正确”的条件是:
1.字符串中必须仅有 P、 A、 T这三种字符,不可以包含其它字符;
2.任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字母 A 组成的字符串;
3.如果 aPbTc 是正确的,那么 aPbATca 也是正确的,其中 a、 b、 c 均或者是空字符串,或者是仅由字母 A 组成的字符串。

【推导类的题】以结果规律为导向,第三步可以列出推导式
即使用P和T分割后前面和后面和中间的关系是

list_str[0]*len(list_str[1])==list_str[2]

import re
s=int(input())
for i in range(s):
    str=input()
    #从头匹配
    regu=re.compile('A*PA+TA*')
    #'*'表示匹配前一个字符重复 0 次到无限次,'+'表示匹配前一个字符重复 1次到无限次
    if regu.match(str):
        a=re.split('[P|T]',str)
        if a[0]*len(a[1])==a[2]:
            print("YES")
        else:
            print("NO")
    else:
        print("NO")

使用模型的流程and理解batch

关于cat拼接函数

'inputs为2个形状为[2 , 3]的矩阵 '
inputs = [x1, x2]
print(inputs)
'打印查看'
[tensor([[11, 21, 31],
         [21, 31, 41]], dtype=torch.int32),
 tensor([[12, 22, 32],
         [22, 32, 42]], dtype=torch.int32)]
#---------------------------------------------
In    [1]: torch.cat(inputs, dim=0).shape
Out[1]: torch.Size([4,  3])

In    [2]: torch.cat(inputs, dim=1).shape
Out[2]: torch.Size([2, 6])

In    [3]: torch.cat(inputs, dim=2).shape
IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 2)
#------------------------------------------
In    [1]: torch.cat(inputs, dim=0).shape
Out[1]: torch.Size([4,  3])

In    [2]: torch.cat(inputs, dim=1).shape
Out[2]: torch.Size([2, 6])

In    [3]: torch.cat(inputs, dim=2).shape
IndexError: Dimension out of range (expected to be in range of [-2, 1], but got 2)

正则表达式re.findall(正则对象,字符串)
正则对象在compile时应该善于应用()来控制界限,并使用“?:”来使其不返回到匹配到的列表里
关于单独的?,贪婪匹配是尽可能的向右查找,只到右边无法满足,尤其在前端中有着比较重要的作用,如<div>.</div>和<div>.?</div>后面的是找一个div标签里的内容

pycharm规范代码 ctrl+alt+L规范代码开发

题意
this_input = input()
a, da, b, db = this_input.split(' ')
pa, pb = "", ""
for i in a:
    if i == da:
        pa += i

for i in b:
    if i == db:
        pb += i
pb = '0' if pb == "" else pb
pa = '0' if pa == "" else pa
print(int(pa) + int(pb))

知识点:

  1. split量在末尾时会出现“”,不在末尾则不出现
  2. if和else的赋值写法 p=() if() else()
上一篇下一篇

猜你喜欢

热点阅读