好久没写过博客了, 实际上是好久没好好学习过了, 实习回来一直在玩耍…
这篇博客都是一些python的基础语法
数据类型
整数和浮点数
python 可以处理任意大小的浮点数和整数, 但是整数的相互运算结果一定是整数
#! /usr/bin/python
a = 1
b = 1.1
print a - b
c = 3
d = 7
print c / d #结果是整数
print c * 1.0 / d #结果是浮点数
e = ('%.3f' %(c * 1.0 / d)) #控制小数位数 python默认的小数精度为17位
print e
输出
-0.1
0
0.428571428571
0.429
字符串
- 多行字符串的打印可以使用:
#! /usr/bin/python2
print r'''ab\tcd #使用 r'''...''''代表'''....''''其中的字符串不进行转义
abcd\n
abcd'''
输出
ab\tcd
abcd\n
abcd
- 还有就是起字符串的索引下标, -1开始表示从最后一个元素
- 字符串的编码
我们在代码前加入注释:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
第一行就是告诉系统这是一个python脚本
第二行就是告诉python解释器要使用 UTF-8 编码来解读源代码
- 格式化字符串的方法和C语言一样
%d, %s, %f, %x
布尔值
只有True
和False
可以通过not, or, and
进行运算
空值
空值是Python里一个特殊的值,用None
表示。None
不能理解为0,因为0是有意义的,而None
是一个特殊的空值。
- 常量
python中常用大写字母表示常量
列表
是一种内置的数据类型, 一种可变长度的有序集合:
- 可向末尾插入元素
- 可向指定位置插入元素
- 可以用下标访问列表, 但是下标不能越界
- 列表中的元素可以不同, 甚至可以是另一个列表
#! /usr/bin/python
# -*- coding: utf-8 -*-
list_ = [1, 2, 'a', 'ab', True, ['a', 'ab', 1, 2], False]
print len(list_)
print list_[5][1]
list_.insert(0, 3) #向索引为0的位置插入3
list_.pop() #删除末尾元素
list_.append('test') #向末尾添加元素
del list_[1] #删除指定元素
print list_[4:7] #也支持这种脚本处理字符串式的截取
列表排序
list.sort(cmp=None, key=None, reverse=False)
cmp -- 可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序, reverse = False 升序(默认)。
例如:
# 列表
vowels = ['e', 'a', 'u', 'o', 'i']
# 降序
vowels.sort(reverse=True)
# 输出结果
print '降序输出:', vowels
# 获取列表的第二个元素
def takeSecond(elem):
return elem[1]
# 列表
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# 指定第二个元素排序
random.sort(key=takeSecond)
# 输出类别
print '排序列表:', random
元组
元组使用()
声明, 列表使用[]
声明
- 元组和列表的区别:
元组初始化后是不能更改的 ( 不能增加, 不能删除, 不能修改), 可以理解为只读的list
-
可以创建空元组:
tuple_ = ()
-
定义只有一个元素的元组,要添加一个逗号:
tuple_ = (1,) #使用print打印的时候也会显示这个逗号
因为()
也可以定是数学公式的小括号, 所以tuple_ = (1)
定义的是tuple_为1, 而不是定义了一个元组
-
删除元组
元组中的元素不能删除, 只能删除整个元组 (del tuple_
, 删除后再使用tuple_元组, 会有异常信息) -
元组的元素不能更改指的是指向的元素不能变, 假如元组内有一元素是一个列表, 该列表的内容可以更改, 因为指向该列表没有变, 所以要保证元组内的每一个元素本身也不变才真正安全
列表和元组是python中的两个有序集合, 一个可变, 一个不可变
字典
字典是一种键值对的存储容器, 使用{}
定义,
dict_ = {1:11, 2:22, 3:33, "a":"A"}
print dict_
---
输出:
{'a': 'A', 1: 11, 2: 22, 3: 33}
可以根据 key 访问或修改 value
dict_ = {1:11, 2:22, 3:33, "a":"A"}
print 3 in dict_ #判断键3在不在字典中
print dict_.get(3, 444) #返回键为3的值, 假如3不存在, 那么会返回指定的444, 如果没有指定, 会返回none
#删除
dict_.pop(1)
del dict_['a']
dict.clear() # 清空字典所有条目
del dict # 删除字典
因为是哈希的, 所以存储顺序和添加顺序没有关系, 而且key必须是不可变元素, 这意味着元组也可以是key
set
set 是一个不可重复的 key 的无序集合, 声明方式:
set_ = set([1, 2, 3, "a"])
接受一个列表作为参数
遍历
1 . 遍历列表
list_ = [1, "qwz", "lzj", 4, "zpf", 6]
for i in list_ :
print(str(list_.index(i)) + " : " + str(i)) #index函数获得下标
for i in range(len(list_)) :
print(list_[i])
for i, val in enumerate(list_) : #enumerate方法获得索引和值
print(str(i) + " : " + str(val))
# 迭代器遍历
it = iter(list_)
for x in it:
do something...
- 遍历字典
Python的字典的items(), keys(), values()都返回一个list
在使用上,for key in a和 for key in a.keys():完全等价
student = {'num': '123456', 'name': 'kelvin', 'age': 18}
for key_ in student :
print(key_ + " : " + str(student[key_]))
for x, y in student.items():
print( x + " : " + str(y))
for value in student.values():
print(value)