写这篇博客只是为了督促自己学习python,坚持每日更新
基操
- 中文编码
# -*- coding: UTF-8 -*-
# coding=utf-8
- 保留字段
and not or exec assert finally break for pass class from
print continue global raise def if return del import
try elif in while else is with except lambda yield
- 跨行语句
使用" \"将多行写在一起,注意“\”前面有个空格,后面没有,否则会报错。
weekdays = ['monday', 'tuesday', 'wednesday', 'thursday', 'friday']
weekend = ['saturday', 'sunday']
week = weekdays + \
weekend
print week
运行结果
数据类型 & 列表操作 & 方括号
m_list = ['test_string', \
# 字符串
1, 2.0, 3.14j, \
# 整数 浮点 复数
(2.0,), \
# 元组
{'a': 1, 'b': 'dict_b'}]
# 字典
print m_list
# 方括号 冒号 规则:
# [起始位 : 终止位 : 步长]
# 正数表示从前往后数位置
# 负数表示从后往前数位置
# 截取
print "截取:", m_list[1:-1]
# 重置为空
m_list = []
print "重置:", m_list
# 在列表后添加元素
m_list.append('0_test_string')
m_list.append(1.0j)
m_list.append((2.0,))
m_list.append(3)
print "添加:", m_list
# 删除
del m_list[2]
print "删除:", m_list
m_list.pop(-1)
print "删除:", m_list
# 移除最后一个元素 pop()函数支持写入index
tmp_var = m_list.pop(-1)
print "删除的元素:", tmp_var, "剩余的列表", m_list
# 组合
m_list_0 = [4, '5', 6.6]
print "组合:", m_list + m_list_0
# 重复
print "重复3次:", m_list * 3
# 比较两个列表的长度 似乎cmp函数已经不被python3支持
print "比较长度:", cmp(m_list, m_list_0)
print "比较长度:", cmp(m_list, m_list)
print "比较长度:", cmp(m_list_0, m_list)
# 反向
m_list.reverse()
print "反向:", m_list
# 插入
m_list.insert(1, 0.5)
print "插入:", m_list
操作结果如下…
字典 & 简单循环
字典类型有点像map,提供了一种灵活的映射关系。
- dict是无序的
m_dict = {'a': 1, 'b': 3, 'c': 2, 'd': '11111'}
print m_dict
输出的顺序与存入的顺序无关。
- 创建
m_dict = {'a': 1, 'b': 3, 'c': 2}
print "m_dict: ", m_dict
m_dict_create = {}
print "m_dict_create: ", m_dict_create
m_dict_create['a'] = 'Alice'
m_dict_create['b'] = 2
m_dict_create[3] = 3
print "m_dict_create: ", m_dict_create
- 按键值排序
for key in sorted(m_dict):
print key, "->", m_dict[key]
- 用key来取值
实际上这个问题关键在于,如果这个字典里面不存在这个key,要怎么处理。使用get就好啦。
val_get_s = m_dict.get('s')
val_get_a = m_dict.get('a')
print "键值为‘s’:", val_get_s
print "键值为‘a’:", val_get_a
不怕麻烦的话,可以写一下if语句来查看键值是否在字典里面。
if 'a' in m_dict:
print '\'a\'在字典中,值为: ', m_dict['a']
else:
print "\'a\'不在字典中"
if 's' in m_dict:
print "\'s\'在字典中,值为:", m_dict['s']
else:
print "\'s\'不在字典中"
元组
元组是不可以被修改的数据结构。
- 创建
# 创建空元组
m_tuple_0 = ()
# 创建仅有一个元素的元组
m_tuple_1 = ("element1", ) # 注意这里的逗号
# 普通创建
m_tuple = (1.0, 2, "33", [4.1, 4.2])
- 合并
元组不能被修改,但是可以合并。
m_tuple_new = m_tuple + m_tuple_1
print m_tuple_new
- 列表转元组
m_list = [1.0]
print tuple(m_list)
数据的基本运算
- 截断除法
x = 13.0
y = 5.0
z = x / y
print z
# 截断除法 返回floor整数(仍然是浮点数)
z = x // y
print z
- 连续比较
x = 1.0
y = 2
z = 3.0
print x < y < z
print y < z > x
print y > z > x
- 随机数
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的随机整数
集合 set
set是无序不重复元素集。
在python2.7中,{ } 仅用来表示字典,set需要用set()来创建。
x = set('June')
y = set('eleventh')
print x, y
# 交集
print x & y
# 并集
print x | y
# 差集
print x - y
动态数据类型相关
- 变量名没有类型
x = 3
print x
x = 5.0
print x
x = "string"
print x
-
垃圾回收
每个对象都有一个计数器,如果引用值为0,则立即回收。 -
共享引用
多个变量名引用同一个值。
字符串
python中单双引号是一样。字符串是不可变序列。
- 三重引号写多行字符串
m_string = """This is
a long
string."""
print m_string
- 字符串转换
str() 将其他类型转为字符串
ord() 字符转化为ascii码
chr() ascii码转字符