循环控制
# 指定起始点
for i in range(1, 10)  
# 指定步长
for i in range(1, 10,2)  
# 使用range()函数来创建一个列表:
list(range(5))  # [0,1,2,3,4]
# pass语句
while True:
        pass # 占位符 为了弥补没有空分号的缺陷 py可以对循环语句使用else
count = 0 while count < 5: print (count, " 小于 5") count = count + 1 else: print (count, " 大于或等于 5") ''' 输出结果 0 小于 5 1 小于 5 2 小于 5 3 小于 5 4 小于 5 5 大于或等于 5 '''
常用TIPS
一行输入多个数据
m,n=map(int, input().split()) # 一行内输入多个数据 a=list(map(int,input().split())) a=[0]+list(sorted(map(int,input().split())))
push_back
ans=[]
for i in a:
    ans.append(i%26) #  try-except多组输入
try:
    while True:
        s,mod = map(str,input().split())
        Sum = 0
        for i in s:
            Sum = (Sum*26+ord(i)-97)
        Sum += int(mod)
        if Sum >= 308915776:
            print(-1)
            continue
        ans=''
        for i in range(6):
            ans += chr(Sum%26+97)
            Sum //= 26
        print(ans[::-1])
except:
    pass 切片
>>>a=[1,2,3,4,5] >>>print(a) [ 1 2 3 4 5 ] >>>print(a[:-1]) ## 除了最后一个取全部 [ 1 2 3 4 ] >>>print(a[::-1]) ## 取从后向前(相反)的元素 [ 5 4 3 2 1 ] >>>print(a[2::-1]) ## 取从下标为2的元素翻转读取 [ 3 2 1 ]
格式化输出
print('%.2f' % ans) 其实.format()是更新的方案
https://www.runoob.com/python3/python3-inputoutput.html
几个代码段
mod = 1000000007
n = int(input())
p = [0] + list(map(int, input().split()))
dp = [[0] * (n + 1) for _ in range(n + 1)]
dp[0][0] = 1
for i in range(1, n + 1) :
    for j in range(i + 1) :
        dp[i][j] = (dp[i - 1][j] * (mod + 1 - p[i]) % mod + (dp[i - 1][j - 1] * p[i] % mod if j else 0)) % mod
print(' '.join(map(str, dp[n]))) join的使用
str = "-";
seq = ("a", "b", "c"); # 字符串序列
print str.join( seq );
# a-b-c 排序/set
import math
n = 100
factory = [1]
for i in range(2, int(math.sqrt(n)) + 1):
    if (n % i == 0):
        factory.append(i)
        if (i * i != n):
            factory.append(n // i)
print(sorted(factory)) import math
thisset = set(("Google", "Runoob", "Taobao"))  # set创建
n = 100
factory = {1}
for i in range(2, int(math.sqrt(n)) + 1):
    if (n % i == 0):
        factory.add(i)
        if (i * i != n):
            factory.add(n // i)
print(sorted(factory))
print(factory)
print(sorted(factory, key=lambda x: x*-1))  #倒序
print(sorted(factory, reverse=True) sorted 的应用,也可以通过 key 的值来进行数组/字典的排序,比如:
array = [{"age":20,"name":"a"},{"age":25,"name":"b"},{"age":10,"name":"c"}] array = sorted(array,key=lambda x:x["age"]) print(array)Output
[{'age': 10, 'name': 'c'}, {'age': 20, 'name': 'a'}, {'age': 25, 'name': 'b'}]
先按照成绩降序排序,相同成绩的按照名字升序排序:
d1 = [{'name':'alice', 'score':38}, {'name':'bob', 'score':18}, {'name':'darl', 'score':28}, {'name':'christ', 'score':28}] l = sorted(d1, key=lambda x:(-x['score'], x['name'])) print(l)Output
[{'name': 'alice', 'score': 38}, {'name': 'christ', 'score': 28}, {'name': 'darl', 'score': 28}, {'name': 'bob', 'score': 18}]

 京公网安备 11010502036488号
京公网安备 11010502036488号