python基础语法学习总结

    科技2023-10-21  70

    目录

    1、输入输出:

    2、数据定义(多维数组,全局变量global):

    3、特殊数据结构(queue)

    4、数组/列表排序 arr.sort(key=lambda x:x[1])

    5、其他基础语法:(for,not,程序入口)


    1、输入输出:

    # 输入一个数字 n = int(input()) # 接受多个输入 op, x, y = map(str, input().split()) # 操作类型, op数1, op数2 x = int(x) # 字符串转换为int y = int(y) # 输出 print(x) print(x, end = "") # 不输出换行, 用""代替换行

    2、数据定义(多维数组,全局变量global):

    # 一维数组定义, 邻接表为例 h, e, ne, idx = [-1] * N, [0] * N, [0] * N, 0 # 二维数组定义, N行M列的二维数组 f = [[inf] * M for i in range(N)] # 在函数中若需要使用全局变量, 需要用global声明, 特殊的数组, 队列等不用特别声明 def find(x): global n t = (x % 300010 + 300010) % 300010 while h[t] != 9999999999 and h[t] != x: t = t + 1 if t == 300010: t = 0 return t

    3、特殊数据结构(queue)

    # 优先队列,合并果子,haffman树 from queue import * # 需要导入相应模块 q = PriorityQueue() # 定义 n = int(input()) a = list(map(int, input().split())) if __name__ == "__main__": for i in range(n): q.put(a[i]) # 常用3个函数: put get qsize ans = 0 while q.qsize() > 1: x = q.get() y = q.get() q.put(x + y); ans += x + y print(ans)

    4、数组/列表排序 arr.sort(key=lambda x:x[1])

    # 最小生成树为例 N = 100010 n, m = 0, 0 p = [0] * N e = [] def find(x): if x == p[x]: return x else: p[x] = find(p[x]) return p[x] if __name__ == "__main__": n, m = map(int, input().split()) for i in range(0, n + 1): p[i] = i ans = 0 for i in range(m): x, y, z = list(map(int, input().split())) e.append((x, y, z)) e.sort(key = lambda t : t[2]) # lambda快速定义函数, t为函数参数, t[2]为返回值 cnt = 0 for i in range(m): fa = find(e[i][0]) fb = find(e[i][1]) if fa != fb: p[fa] = fb ans += e[i][2] cnt += 1 if cnt != n - 1: print("impossible") else: print(ans)

    5、其他基础语法:(for,not,程序入口)

    # for 循环 # range的用法:range(start, end + 1, step) i : 0 ~ n - 1 for i in range(n): ... ... i: 1 ~ n for i in range(1, n + 1): ... ... i: 1 3 5... for i in range(1, n + 1, 2): ... ... # 另外python中没有! && || ++ -- 等符号, 用not and or += -= 代替 # 还有程序的入口: if __name__ == "__main__": ... ...

     

    Processed: 0.009, SQL: 8