python基本数据类型

python2-numpy教程
https://zhuanlan.zhihu.com/p/20878530?refer=intelligentunit
python3中文教程
http://www.runoob.com/python3/python3-tutorial.html
python3英文教程
https://docs.python.org/3.6/tutorial/index.html

python中有六个标准数据类型:
数字number、字符串、列表、元组、集合、字典

数字

理解

python3支持int、float、bool、complex数字类型

使用

a, b, c, d = 20, 5.5, True, 4+3j    #创建number对象

print(type(a), type(b), type(c), type(d))   #type()函数可以查询变量所指的对象类型
isinstance(a, int)                  #type isinstance 区别: type()不会认为子类是一种父类类型。isinstance()会认为子类是一种父类类型。

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

>>>5 + 4  # 加法
9
>>> 4.3 - 2 # 减法
2.3
>>> 3 * 7  # 乘法
21
>>> 2 / 4  # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 17 % 3 # 取余 
2
>>> 2 ** 5 # 乘方
32

字符串

理解

没有什么

使用

str = 'Runoob'
print (str)          # 输出字符串
print (str[0:-1])    # 输出第一个到倒数第二个的所有字符
print (str[0])       # 输出字符串第一个字符
print (str[2:5])     # 输出从第三个开始到第五个的字符
print (str[2:])      # 输出从第三个开始的后的所有字符
print (str * 2)      # 用*输出字符串两次
print (str + "TEST") # 用+号,连接字符串
print('Ru\noob')      #反斜杠转义特殊字符
print(r'Ru\noob')     #不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串
#反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行
#Python中的字符串不能改变。

列表lists:

理解

结合了C链表的可变和数组的下标访问

使用

基本
    x=[5,2,0]               #创建列表
    print  (x)              #打印整个列表
    print (x[2])            #打印第三个
    print (x[-1])           #打印最后一个数字,注意不是打印倒数第二个,因为x[0]已经指定为第一个了
    x[2]='hello'            #赋值
    x.append('GaoJiaBao')   #在列表后加一个元素,和C的栈很像,不足是只能加一个元素,增加一串可以用extend,+,+=
    x.extend(x)             #x后增加x
    x=x+x  x+=x             #二者结果和extend一样,不过前者实际上生成了一个新列表
    y=x.pop()               #弹出一个元素并返回该元素,和C的栈很像
切片
    nums = range(5)    # range is a built-in function that creates a list of integers
    print (nums)         # Prints "[0, 1, 2, 3, 4]"
    print (nums[2:4])    # Get a slice from index 2 to 4 (exclusive); prints "[2, 3]"
    print (nums[2:])     # Get a slice from index 2 to the end; prints "[2, 3, 4]"
    print (nums[:2])     # Get a slice from the start to index 2 (exclusive); prints "[0, 1]"
    print (nums[:])      # Get a slice of the whole list; prints ["0, 1, 2, 3, 4]"
    print (nums[:-1])    # Slice indices can be negative; prints ["0, 1, 2, 3]"
    nums[2:4] = [8, 9] # Assign a new sublist to a slice
    print (nums)         # Prints "[0, 1, 8, 8, 4]"
    注意“:”后面的那个元素不包含,前面的包含
循环loops
    animals = ['cat', 'dog', 'monkey']
    for animal in animals:
        print (animal)
推导list comprehensions
    nums = [0, 1, 2, 3, 4]
    squares = []
    for x in nums:
        squares.append(x ** 2)
    print squares   # Prints [0, 1, 4, 9, 16]

    nums = [0, 1, 2, 3, 4]
    squares = [x ** 2 for x in nums]
    print squares   # Prints [0, 1, 4, 9, 16]
    #二者结果相同

    nums = [0, 1, 2, 3, 4]
    even_squares = [x ** 2 for x in nums if x % 2 == 0]
    print even_squares  # Prints "[0, 4, 16]"
    #列表推导包括条件

字典dictionary

理解

C中没见过,Java中的Map?

使用

基本:
    d={'cat':'cute','dog':'furry'}
    print (d['cat'])        #打印“cute”
    print ('cat' in d)  #如果有“cat”,打印“TRUE”
    d['fish'] = 'wet'   #在字典里加一个词条
    print (d['monkey']) #如果没有这个词条,会发生什么呢,出现错误
    print (d.get('monkey', 'N/A')) #使用d.get,没有键值的时候回返回后面的值
    del d['fish']   #删除fish键值   
    d.clear()   del d   #删除字典
    #字典中的键值必须是不可变的,可以是数字、字符串,不能是列表。
循环
    d = {'person': 2, 'cat': 4, 'spider': 8}
    for animal in d:
        legs = d[animal]
        print ('A %s has %d legs' % (animal, legs))
    # Prints "A person has 2 legs", "A spider has 8 legs", "A cat has 4 legs"
推导
    nums = [0, 1, 2, 3, 4]
    even_num_to_square = {x: x ** 2 for x in nums if x % 2 == 0}
    print (even_num_to_square)  # Prints "{0: 0, 2: 4, 4: 16}"

集合sets

理解

无序集合

使用

基本
    animals = {'cat', 'dog'}
    print ('cat' in animals)   # 检查集合中有无该元素; prints "True"
    print ('fish' in animals)  # prints "False"
    animals.add('fish')      # 加一个元素
    print ('fish' in animals)  # Prints "True"
    print (len(animals))       # 求集合元素个数; prints "3"
    animals.add('cat')          # 如果已经存在,什么事情都不会发生
    print (len(animals))       # Prints "3"
    animals.remove('cat')       # 移除集合元素
    print (len(animals))       # Prints "2"
循环
    animals = {'cat', 'dog', 'fish'}
    for idx, animal in enumerate(animals):
        print ('#%d: %s' % (idx + 1, animal))
    # Prints "#1: fish", "#2: dog", "#3: cat"
推导
    from math import sqrt
    nums = {int(sqrt(x)) for x in range(30)}
    print (nums)  # Prints "set([0, 1, 2, 3, 4, 5])"

元组

理解

元组与列表的不同在于,元组是不能修改的

使用

tup1 = ('Google', 'Runoob', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";  #创建元组
print (tup2[1:3])           #截取第2-3个元素
tup4=tup1+tup2              #元组元素是不允许修改的,但是可以连接
del tup4                    #元组的元素不能删除,但可以整个一起删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值