Py3 基本知识补充
发布日期:2021-05-07 23:18:46 浏览次数:22 分类:精选文章

本文共 2305 字,大约阅读时间需要 7 分钟。

Powered by:AB_IN 局外人

列表

  • 返回 0 − 9 0 - 9 09的偶数

    两种方式都可以。

    result = [num for num in range(0, 10) if num % 2 == 0]
    result=list(filter(lambda x: x%2==0,range(0,10)))

    但要注意,不能这么写:

    result = [num%2==0 for num in range(0, 10)]

    这样会返回

    [True, False, True, False, True, False, True, False, True, False]

    因为 r e s u l t result result里的元素为 n u m num num, n u m % 2 = = 0 num\%2==0 num%2==0使之变成布尔值。

  • e x t e n d extend extend

    向列表末添加列表中的所有元素,如:

    lst.extend([1,2,3])
  • i n s e r t ( i d , n u m ) insert(id,num) insert(id,num)

    在下标为 i d id id的前面加上 n u m num num

    lst=[1,2,4,5,6]lst.insert(2,3)print(lst)#[1, 2, 3, 4, 5, 6]
  • 二维列表

    matrix = [[0 for i in range(3)] for i in range(3)]
  • c o p y copy copy

    import copya=[[1,2,3,4,5],[2,3,4,5,6]]b=copy.deepcopy(a)print(b)#[[1, 2, 3, 4, 5], [2, 3, 4, 5, 6]]

字典

在之前字典有说过一些,这里再补充一些。

  • 直接添加新的键值

    d[a]=b

    如果像下面这么写,而且键是新的键的话,会报错

    d[a]+=1
  • d . k e y s ( ) d.keys() d.keys()

    返回一个迭代器。
    例如:

    for i in d.keys():	print(i," ".join(sorted(d[i])))

    这里 i i i为每一个键值。

文件

  • 开关文件

    f = open('./test.txt','r')  #打开文件,常用的参数:#r:只读 #w:写入,如果文件存在会清空,如果文件不存在会创建#a:追加,如果文件存在会在末尾追加,如果文件不存在会创建f.close()

    也可以用 w i t h with with,就不用关闭了。

    with open('./test.txt','r') as f:    print(f.read())

    那如果文件名是输入进来的

    filename=input()with open(filename,'r') as f:
  • 读取文件

    for lines in f.readlines():	s=lines.strip()#例如f.read()    #参数是读取的数据数目,默认是所有内容f.readline()    #读取一行f.readlines()   #读取所有行
  • 写入文件

    list1=["lsy","shi sha bi"]with open('./test.txt','w') as f:    f.writelines([line+'\n' for line in list1])'''lsyshi sha bi'''

f’ ’ 和 strip()

  • 格式化字符串,例如

    print(f'{s} is translated into {d[s]}.')

    如果 ′   ′ ' \ '  里有 ′ ' ,则需要转义,比如:

    print(f'\'{s}\' is translated into \'{d[s]}\'.')

    明显不美观,所以可以用 "   " " \ " " "

    print(f"'{s}' is translated into '{d[s]}'.")
  • s t r i p ( ) strip() strip()

    可以去除字符串初始和结尾的 换行,tab,空格。

递归

个人感觉,递归最重要的就是找终止条件,就是看你想让这个程序什么时候往回返

例如,求数字各位数之和

def get_sum_digits(s):    if s < 10:        return s    else:        return s % 10 + get_sum_digits(s // 10)

这就是让它递归到最底层再往上返。

if s < 10:	return s

返回时,还有附加操作 s % 10

return s % 10 + get_sum_digits(s // 10)

例如,看列表里有没有偶数

def no_evens(numbers):    try:        if numbers[0] % 2 == 0:            return False        else:            return no_evens(numbers[1:])    except:        return True

这种就是没有附件操作的返回,直直的返回。递归时遇到偶数就返回 F a l s e False False,然后直直的返回 F a l s e False False

return no_evens(numbers[1:])

完结。

上一篇:2020牛客NOIP赛前集训营-普及组(第一、二场)
下一篇:2020-10-12 大二2020cf训练

发表评论

最新留言

很好
[***.229.124.182]2025年03月21日 02时48分50秒