在MOOC上,学习了北京理工大学嵩天老师的Python语言程序设计,此为学习笔记记录,备查,备翻阅复习。
数字类型
python语言的类型,主要有6种
- 数字类型
- 字符串类型
- 元组类型
- 列表类型
- 文件类型
- 字典类型
python有三种数字类型:
- 整数类型:没有取值范围,可以是十进制 八进制 十六进制
- 浮点类型:带有小数点,浮点数可以用科学计数法表示,
- 复数类型,与数学中的复数概念一致
三种类型可以互相转换 int() float() complex()
int(4.5) = 4
float(4) = 4.0
complex(4) = 4 + 0j
type(x)判断变量的类型,使用于所有类型的判断。
字符串类型
单引号或者双引号括起来的字符
字符串是一个字符序列,索引从0开始,可以通过索引操作字符串。
字符串可以通过+ 和* 操作
len()返回字符串长度
str()转化为字符串
#输入1-12的数字返回对应月份的缩写
# month.py
months="JanFebMarAprMayJunJulAugSepOctNovDec"
n=input("请输入月份数(1-12):")
pos=(int(n)-1) * 3
monthAbbrev=months[pos:pos+3]
print("月份简写是" + monthAbbrev + ".")
字符串的操作方法
string.
string.upper() 返回小写字母转为大写字母的字符串。
string.lower() 返回将字符串中所有大写字符转换为小写后生成的字符串。
string.capitalize() 该方法返回一个首字母大写的字符串。
string.strip()去除字符串两边空格以及去指定字符
string.split() 按指定字符分割字符串为数组
string.isdigit() 判断是否为数字类型,如果是真返回True, 否则返回False。
string.find(str, beg=0, end=len(string)) 检测 str 是否包含在字符串string中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含则返回开始的索引值,否则返回-1。
string.repalce(old, new [, max]) 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
字符串中可以使用转义字符来表达在打印时没法打印出来的内容,例如\n会打印出换行。
Python 的字符串常用内建函数(一共40个),作为字符串内置方法的备查列表。
元组类型
元组元素之间用逗号分隔
元组中的元素可以是不同类型
元组中的元素存在先后顺序,可以索引
元组中的元素定义后不能修改
元组也可以通过+ * 操作。
元组是为了更安全,如果不考虑安全,考虑使用的灵活性,可以考虑使用列表类型。
列表类型
是有序的元素组合,可以索引
其中的元素可以是不同类型
列表大小没有限制,其中元素可以修改
列表的操作方法
列表的操作方式和字符串的操作方式类似
vlist = [0,1,2,3,4]
vlist *2
len(vlist[2:])
for i in vlist[:3]:
print(i)
>>>2 in vlist
True
python 包含的列表函数:
- len(list) 列表元素个数
- max(list) 返回列表元素最大值
- min(list) 返回列表元素最小值
- list(seq) 将元组转换为列表
python 包含的列表方法:
- list.append(obj) , 在列表末尾添加新的对象
- list.count(obj), 统计某个元素在列表中出现的次数
- list.extend(seq), 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
- list.index(obj), 从列表中找出某个值第一个匹配项的索引位置
- list.insert(index, obj), 将对象插入列表
- list.pop(index = -1), 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
- list.remove(obj), 移除列表中某个值的第一个匹配项
- list.reverse(), 反向列表中元素
- list.sort( key=None, reverse=False) 对原列表进行排序
- list.clear() 清空列表
- list.copy() 复制列表
Python列表函数&方法, 作为python 列表方法的备查目录。
math库、random库
math库包含了常用的数学计算函数,与数学公式比较类似。
random库常用函数
seed(x) 给随机数指定一个种子值
random() 返回随机生成的一个实数,它在[0,1)范围内。
uniform(a,b) 随机生成一个小数,它在 [a, b] 范围内
randint(a,b) 生成一个a到b之间的随机整数
randrange([start,] stop [,step]) 随机生成一个从a开始到b以c递增的数
choice(list) 从列表随机返回一个元素
shuffle(list) 将列表元素随机打乱
sample(list, k) 从指定列表随机获取K个元素
实例π的计算
圆周率π是一个无理数,没有任何一个精确公式能够计算π值,π的计算只能采用近似算法,国际公认的计算方法是蒙特卡洛方法。
蒙特卡洛方法又称为随机抽样或统计试验方法,当所求解的问题是某种事件出现的概率,或某随机变量的期望值时,可以通过某种试验的方法求解。简单说蒙特卡洛方法就是利用随机试验求解问题的方法。广泛应用于当一个问题不能通过确定公式获得求解时,转而通过设计随机试验进行估计。
# pi.py
from random import random
from math import sqrt
from time import clock
DARTS = 1200 # 抛撒点的数量
hits = 0
clock()
for i in range(1,DARTS):
x, y = random(), random() # 原点即(0, 0), 抛撒点就是(x, y)
dist = sqrt(x**2 + y**2) # 计算点到原点的距离
if dist <= 1.0:
hits = hits + 1
pi = 4 * (hits/DARTS)
print("Pi的值是 %s" % pi)
print("程序运行时间是 %-5.5ss" % clock())