这篇是 2019 年 8 月记的,上大学前的那个暑假。原文照抄,只调了排版,当时写错的地方一处都没改。

语法零碎

  • ()不可变
  • 【】可变
  • {}可变,无序
  • 形式常亮用大写!CONSTANT =
  • 模块变量按规则都应该是常亮,变量放函数或者类里头
  • Pycharm好像没有模块常量波浪线标注建议大写功能?
  • Range(0,10) 表示1-9
  • Print(x,end=’|’)打印完成不换行,以|分隔
  • B = a0:len(a):2 b数组获取a 相当于range(0,len(a),2)
  • Break终止循环 contiune跳过这一轮循环
  • Len(a) a的字串长度

random 模块

用法是从别处抄来的,第一段的作者署名我留在了代码里:

#!/usr/bin/python

## -*- coding: UTF-8 -*-

import random

print( random.randint(1,10) )        # 产生 1 到 10 的一个整数型随机数
print( random.random() )             # 产生 0 到 1 之间的随机浮点数
print( random.uniform(1.1,5.4) )     # 产生  1.1 到 5.4 之间的随机浮点数,区间可以不是整数
print( random.choice('tomorrow') )   # 从序列中随机选取一个元素
print( random.randrange(1,100,2) )   # 生成从1到100的间隔为2的随机整数

a=[1,3,5,6,7]                # 将序列a中的元素顺序打乱
random.shuffle(a)
print(a)

# 冷面做的梦
# 1年前 (2018-05-23)

第二段:

#!/usr/bin/python

## -*- coding: UTF-8 -*-

import random
import string

#### 随机整数:

print random.randint(1,50)

#### 随机选取0到100间的偶数:

print random.randrange(0, 101, 2)

#### 随机浮点数:

print random.random()
print random.uniform(1, 10)

#### 随机字符:

print random.choice('abcdefghijklmnopqrstuvwxyz!@#$%^&*()')

#### 多个字符中生成指定数量的随机字符:

print random.sample('zyxwvutsrqponmlkjihgfedcba',5)

#### 从a-zA-Z0-9生成指定数量的随机字符:

ran_str = ''.join(random.sample(string.ascii_letters + string.digits, 8))
print ran_str

#### 多个字符中选取指定数量的字符组成新字符串:

print ''.join(random.sample(['z','y','x','w','v','u','t','s','r','q','p','o','n','m','l','k','j','i','h','g','f','e','d','c','b','a'], 5))

#### 随机选取字符串:

print random.choice(['剪刀', '石头', '布'])

#### 打乱排序

items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print random.shuffle(items)

模块、导入和别的

  • .dll是C#里类似模块的 组织结构 动态链接库 .lib静态链接库
  • .jar也是
  • Pack._init_这个写法是错的,_init_直接用pack表达
  • Import c7
  • Print(c7.a)这样能把c7模块的a打印出来
  • 解释型语言在意import print顺序
  • 同级模块不用目录直接名字就好,高级导入次级需要 子报名.模块名
  • .pyc是编译器做的自检码,提升运行效率,可以被反编译,谨防小偷!
  • Round(a,b) a数字b位四舍五入
  • Python命令行help()查询函数
  • Sys.函数能改很多人工限制
  • 循环调用最多3923 3925次
  • 定义立刻执行,声明等着以后执行
  • _不推荐外部调用;__防止被继承覆盖
  • __dict__是类内变量
  • a = list(range(1,5)) list()只接受单个参数,结果:
a = [1, 2, 3, 4]
  • 序列解包不是并行过程

现在回头看

  • range(0, 10) 是 0 到 9。我那时候写「表示 1-9」,两头都记错了。
  • _init_ 少了下划线,是 __init__;pack 那句到现在我也没还原出当时想说什么。
  • 第二段 random 的代码是 Python 2 的(print 不带括号),我照着抄下来,没看出来它和第一段的区别。
  • 「循环调用最多 3923 3925 次」这个数,我至今不知道是从哪儿抄的。