Python学习笔记

1.Python开发工具

IDLE自带入门级开发工具
Sublime Text第三方开发的专业编程工具
Wing专业集成工具,收费,调试功能丰富(包括版本控制、版本同步)
Visual Studio&PTVS
Eclipse开源,通过PyDev在Eclipse中配置python开发环境,配置较复杂
PyCharm简单,集成度高,适合较复杂的程序
Canopy(收费)、Anaconda(开源)适合科学计算、数据分析

2.六个标准的数据类型

在Python中,变量没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
一个变量可以通过赋值指向不同类型的对象。
Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Sets(集合)、Dictionary(字典)

3.查询变量所指对象类型

type()和isinstance(x, int)>>>True 来查询变量所指的对象类型。
isinstance 和 type 的区别在于:
class A:
    pass
class B(A):
    pass
isinstance(A(), A)  # returns True
type(A()) == A      # returns True
isinstance(B(), A)    # returns True
type(B()) == A        # returns False

type()不会认为子类是一种父类类型。 isinstance()会认为子类是一种父类类型。

del语句删除对象引用

del var
del var_a, var_b

4.Number(数字)

用于存储数值,不允许改变,意味着如果改变数字数据类型得值,将重新分配内存空间。
int、float、bool、complex(复数)

数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。
在混合计算时,Python会把整型转换成为浮点数。
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

abs(x)、fabs(x)  #x的绝对值
divmod(x,y)  #(x//y,x%y) (商,余数)
pow(x,y)  #x的y次幂
ceil(x)  #x的上入整数  floor(x) #x的下舍整数
exp(x) #x的x次幂
max(x1, x2,...)、min(x1, x2,...)  #x的最大、小值,参数可以为序列。 
modf(x)  #x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。 
round(x [,n]) #浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。 
sqrt(x)  返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回 2+0j 

随机数函数
choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。 
randrange([start,] stop [,step])  从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1 
random()  随机生成一个在[0,1)范围内的实数。 
seed([x])  改变随机数生成器的种子seed。python会默认设置seed。 
shuffle(lst)  将序列的所有元素随机排序 
uniform(x, y) 随机生成一个在[x,y]范围内的实数。

三角函数
acos(x)、asin(x)、atan(x)、atan2(y, x)、sin(x)、cos(x)、tan(x)
degrees(x) 将弧度转换为角度,如degrees(math.pi/2),返回90.0 
radians(x) 将角度转换为弧度
hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)。 

数学常量
pi  圆周率,一般以π来表示
e   自然常数

5.String(字符串)

字符串用单引号(')或双引号(")括起来,使用反斜杠(\)转义特殊字符。
使用r可以让反斜杠不发生转义。
a=r'Ru\noob'
>>>Ru\noob

字符串通过索引来访问,下标索引以 0 为开始值,-1 为从末尾的开始位置。
加号 (+) 、星号 (*) 可用。
Python中的字符串不能改变,即向同一个索引位置赋值会报错。
word=“python”
word[0]="a" #会报错

字符串的格式化
使用%和format()函数。

6.List(列表)

列表是有序的元素的集合,列表中元素的类型可以不相同,元素可以包含列表(所谓嵌套)。
列表是写在方括号[]之间、用逗号分隔开的元素列表。
list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ]
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表通过索引来访问,下标索引以 0 为开始值,-1 为从末尾的开始位置。
加号 (+) 、星号 (*) 可用。
列表中的元素是可以改变的。
list[0]='ab' #新的list = [ 'ab', 786 , 2.23, 'runoob', 70.2 ]
list[0:2] #取列表的前两个元素到一个子列

print (list[2])  >>>#2.23
print (list[2:3])  >>>#[2.23]

list.append(x) #将元素x增加到列表最后
list.sort() #排序
list.reverse() #反转
list.index(x) #返回第一次出现元素x的索引值
list.insert(i,x) #在位置i插入新元素x
list.count(x) #返回元素x在列表中的数量
list.remove(x) #删除列表中第一次出现的元素x
list.pop(i)  #取出列表中i位置的元素并删除它
Len(list)  #列表list中元素的个数

字符串可以通过split()函数拆成列表
“python is a good language”.split()
>>>["python","is","a","good","language"]

7.Tuple(元组)

元组写在小括号()里(也可以不用括号),元素之间用逗号隔开,元素的类型可以不相同。
tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2  )
元组的元素不能更改也不能删除(更安全),但它可以包含可变的对象,比如list列表,也可以包含另一个元组。
元组通过索引来访问,下标索引以 0 为开始值,-1 为从末尾的开始位置,也可以进行截取。
可以把字符串看作一种特殊的元组。
加号 (+)可用。
构造包含 0 个或 1 个元素的元组比较特殊,只有一个元素时,需要在元素后添加逗号。
tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号。

string、list和tuple都属于sequence(序列)。

8.Set(集合)

集合(set)是一个无序不重复元素的序列,基本功能是进行成员关系测试和删除重复元素。
可以使用大括号{ }或者set()创建集合,创建一个空集合必须用set(),因为{ }用来创建一个空字典。
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
if('Rose' in student) :
    print('Rose 在集合中')
else :
    print('Rose 不在集合中')

9.Dictionary(字典)

字典是无序的键(key) : 值(value)对集合,通过键来存取元素,是一种映射类型,用"{ }"标识。
键(key)必须使用不可变类型,在同一个字典中,键(key)必须是唯一的。 
dict()构建字典,创建空字典使用{ }。
>>>dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{'Taobao': 3, 'Runoob': 1, 'Google': 2}
clear()、keys()、values()

python中的字典是使用了一个称为散列表(hashtable)的算法,其特点是:不管字典中有多少项,in操作符花费的时间都差不多。
如果把一个字典对象作为for的迭代对象,那么这个操作将会遍历字典的键: 
def example(d):
    # d 是一个字典对象
    for c in d:
        print(c)
        #如果调用函数试试的话,会发现函数会将d的所有键打印出来;
        #也就是遍历的是d的键,而不是值
输出 kye:value的组合:
for c in dict:
    print(c,':',dict[c])
或者
for c in dict:
    print(c,end=':');# print()函数可以添加多个参数,用逗号隔开。
    print(dict[c])

10.Python数据类型转换

int(x [,base])、long(x [,base] )、float(x)将x转换为一个整数、长整数、浮点数
complex(real [,imag])创建一个复数 complex(x)实数部分为 x,虚数部分为 0。
str(x)、repr(x)、将对象 x 转换为字符串、表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)、list(s)、set(s)将序列 s 转换为一个元组、列表、可变集合
dict(d)创建一个字典d,必须是一个序列(key,value)元组。
frozenset(s) 转换为不可变集合
chr(x)、unichr(x)、ord(x)、hex(x)、oct(x)将一个整数转换为字符、Unicode字符、它的整数值、十六进制字符串、八进制字符串

11.Python运算符

算术运算符
+ - * / 
x//y #整商(不大于x与y之商的最大整数)
x%y  #取模,余数
x**y  #x的y次幂

比较运算符 ==   !=   >   <   >=   <= 

赋值运算符 =   +=   -=   *=   /=   %=   **=   //=

位运算符
& 按位与运算符:
参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 
(a & b) 输出结果 12 ,二进制解释: 0000 1100 
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 
(a | b) 输出结果 61 ,二进制解释: 0011 1101 
^ 按位异或运算符:当两对应的二进位相异时,结果为1  
(a ^ b) 输出结果 49 ,二进制解释: 0011 0001 
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。
~x 类似于 -x-1  (~a ) 输出结果 -61 ,
二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 
<< 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
 a << 2 输出结果 240 ,二进制解释: 1111 0000 
>> 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数  
a >> 2 输出结果 15 ,二进制解释: 0000 1111

逻辑运算符 and、or、not 与、或、非
其中数字0是假,其他数字都是真;字符""是假,其他字符都是真;

成员运算符 in、not in

身份运算符 is、is not

12.函数相关

当函数有多个返回值的时候,是以元组的方式返回的。
>>>def example(a,b):
...     return (a,b)
...
>>>type(example(3,4))
<class 'tuple'>
>>>
python中的函数还可以接收可变长参数,比如以 "*" 开头的的参数名,会将所有的参数收集到一个元组上。 
def test(*args):
    print(args)
    return args

print(type(test(1,2,3,4))    #可以看见其函数的返回值是一个元组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一秒变桌子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值