# 前言

国赛刚结束，出来分享下笔记


# 一、python常用的基础语法

range() 等差数列

>>>a = list(range(10))
>>>a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>>b = list(range(2,10,2))
>>>b
[2, 4, 6, 8]

>>>for i in range(5):
>>>    print(i)
0
1
2
3
4



for i in range(n) 表示循环n遍

split() 切片

>>>a = "10 20"
>>>a.split()
['10', '20']



map() 列表转换

a = "10 20"
a = list(map(int, a.split()))
a
[10, 20]



sort() 排序

a = [1,3,4,5,2]
a.sort()
a
[1, 2, 3, 4, 5]
a.sort(reverse=True)
a
[5, 4, 3, 2, 1]



# 二、进阶技巧

## 1.生成二维数组

List = [[0]*x for i in range(y)]


>>>l1 = [[0] * 5 for i in range(3)]
l1
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
>>>for i in l1:
>>>    print(i)
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]
[0, 0, 0, 0, 0]



## 2.两个循环变量

>>>for i, j in zip(range(5), range(10,15)):
>>>    print(i, j)

0 10
1 11
2 12
3 13
4 14



## 3.按键排序

list.sort(cmp=None, key=None, reverse=False)

>>>def fun(s):
>>>    return s.count("1")

>>>l = ["11", "1011", "0001", "11111"]
>>>l.sort(key=fun)
>>>print(l)
['0001', '11', '1011', '11111']#按照"1"的个数排序



>>>def fun(d):
>>>    return d["age"]

>>>d = [
>>>    {"name":"小明", "age":14},
>>>    {"name":"小红", "age":13},
>>>    {"name":"小刚", "age":15}]
>>>d.sort(key=fun)
>>>print(d)
[{'name': '小红', 'age': 13}, {'name': '小明', 'age': 14}, {'name': '小刚', 'age': 15}]
#按照字典中的"year"键的值排序


## 4.无穷大

a = float('inf')#给a赋值无穷大


# 三.库的引用

## 1.math库

import math

math.gcd()#求最大公约数
math.factorial()#求阶乘


## 2.itertools库

import itertools

a = [1, 2, 3]
for i in itertools.permutations(a):#对a进行全排列
print(i)

>
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)

import itertools

a = [1, 2, 3]
for i in itertools.combinations(a,2):#求a长度为2的组合
print(i)

>
(1, 2)
(1, 3)
(2, 3)


## 3.datetime库

>>>import datetime
>>>a = datetime.date(2000,1,1)
>>>print(a.day)#输出a的日
1
>>>print(a.month)#输出a的月
1
>>>print(a.weekday())#输出a是星期几
5
>>>print(a.year)#输出a的年份
2000
>>>b = datetime.timedelta(2)#timedelta(a) 表示a天间隔
>>>a = a + b
>>>print(a)
2000-01-03



import datetime
a=datetime.date(1900,1,1)
b=datetime.date(9999,12,31)
count=0
while a<b:#循环所有日期
if '2' in str(a):
cnt+=1
a+=tatetime.timedelta(1)#加上一天
print(cnt+1)#print(1994240)


# 总结

• 10
点赞
• 57
收藏
• 打赏
• 2
评论
10-31 1014
01-17 4
01-05 43
03-28 941
05-01 2988
05-03 4919
05-24 320
01-08 25
07-03 514
06-09 3373
01-09 95
06-24 1745
01-15 1万+

### “相关推荐”对你有帮助么？

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

¥2 ¥4 ¥6 ¥10 ¥20

1.余额是钱包充值的虚拟货币，按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载，可以购买VIP、C币套餐、付费专栏及课程。