小白入门python---day1_数据类型及运算符

Python的数据类型

在现实中,计算机处理的远不止数值,还要处理文本、图形、音频、视频、网页等各类各样的数据,不一样的数据,须要定义不一样的数据类型。
在Python中,可以直接处理的数据类型有如下几种:数值型、字符串型、列表型、元组型、字典型。python

数值类型

便是数字类型,又细分为:整型,浮点型,长整型,复数型.linux

整型

整数类型的范围是2**32,其中包含正数和负数(2的31次方个正和2的31次方的个负数,因此它的范围是-2147483648 ——— 214748364。
  PS:查看一个数据的数据类型
  1. 使用type(数据)方法
  2. dir():获取对象的方法
3.PyCharm:按住command点击类型,便可查看源码。从源码中查看对象类型的方法。web

In [1]: a=1
In [2]: type(a)
Out[2]: int    # int表示为整型
In [18]: type(2/1)
Out[18]: int

markdown未熟悉,见谅.api

浮点型

浮点类型就是带小数点的,多余的位数会被四舍五入
整数和浮点数在计算机内部存储的方式是彻底不一样的,整数运算永远是精确的,除法也是精确的,而浮点数运算则可能会有四舍五入的偏差。数组

长整型

用l或L表示,当咱们赋值的时候使用l能够把变量赋值为长整型,注意在Python3中已经没有长整型!markdown

复数型

用j表示,当咱们赋值的时候使用j能够把变量赋值为复数型,python对复数提供内嵌支持。(其余大部分软件没有)
  复数通常用于科学计算,咱们平常通常不会使用,这里知道便可。数据结构

In [20]: type(123j)
Out[20]: complex   # 表示复数类型

字符型

字符串是以单引号’或双引号"括起来的任意文本,好比’abc’,“xyz"等等。
请注意,’'或”“自己只是一种表示方式,不是字符串的一部分,所以,字符串’abc’只有a,b,c这3个字符。
若是’自己也是一个字符,那就能够用”"括起来,好比"I’m OK"包含的字符是I,’,m,空格,O,K这6个字符。
有三种方法定义字符串:单引号,双引号,三引号。
请注意,python里面单双引号均可以括字符串和字符,与C语言不同
最后,三重括号(如’’’ ‘’’)能够表示注释!!!app

字符串基本操做

索引

就是数组下标svg

In [3]: a='1234567'
In [4]: a[0] -->#下标从0开始,0表示第一个数
Out[4]: '1'
In [5]: a[3] -->#表示第四个数
Out[5]: '4'

补充:也能够从后面开始算,[-1]是最后一个函数

切片

就是截取变量,相似于数学的区间

In [14]: a='abcd'
In [15]: a[0:2]
Out[15]: 'ab'#从第0个开始截取2个字符,其中0能够省略
In [14]: a='abcd'
In [17]: a[1:]
Out[17]: 'bcd'
#从1开始截取到最后,省略的位置就当是到尽头的

字符串的内置操做

字符串是Python中的主要数据类型,其内置了很是多的方法,直接就能够在对字符串进行操做,主要方法以下:

capitalize
# 功能:首字母大写
# 调用方式:string.capitalize() 
# 例: 
name = 'hello' name.capitalize()
 #结果:
'Hello'

用法: string.casefold()
用法:string.lower()
用法:str.center(width,filechar=None)
用法:str.counter(sub,start=None,end=None)
用法:str.startswith(suffix,start=None,end=None)
用法:str.endswith(suffix,start=None,end=None)
用法:str.expendtabs(20)
用法:str. find(sub,start=None,end=None)
用法:str.format()
等等等,做用基本上看英文就懂了~

序列类型

字符串、列表和元组都是序列的一种,序列的两个主要特色是索引操做符和切片操做符
索引操做符让咱们能够从序列中抓取要给特定的项目
切片操做符让咱们可以获取序列的一个切片,即一部分操做(这个就是上述的字符串一个总结)

序列类型的基本操做

字符串、列表、元组的索引和切片又有些许不一样
用法:len() 计算字符串长度
用法:+ 链接序列
用法:* 重复序列
用法:in 在序列中查找元素是否存在
用法:max(),min() 求最大最小值
用法:cmp() 比较序列是否相等,从左开始向右比对,前>后,返回1,前<后,返回-1,前=后,返回0,若是相等,则继续向右比对

元组(tuple)

元组tip:

元组能够存储一系列的值,使用()圆括号来定义。
被使用的元组的值不能够被改变,可是被使用前(定义时)能够任意修改.
元组也用来接受函数返回值.
支持元组内嵌套引用(包括所有引用和部分引用)

定义元组

t=(1,)#这就是一个元组了,类型是tuple
a=(t,1)#嵌套引用所有
b=(t[1],t,1)#嵌套引用部分

以上部分彻底体现了python的原理:所有TM都是对象,都是指针!~

元组基本操做

支持操做以下:
1,拆分

a=('31','1800','26','2634')
first,second,_,last=a
 ##元组若是有n个元素,必须用1或n个定义来分割,咱们能够用_,来获取不须要的数据,可是萝卜坑仍是要填上的.
first
>>>31

2.查看,索引,统计出现次数,帮助
tab或者使用 dir(元组名)来查看元素
元组名.index(被索引元素,索引上限,索引下限)
##上下限若是省略则默认全元组索引
若是有直接return 下标位置(优先报第一个) 没有这个元素就报错
元组名.count(被统计元素) 有就返回次数,不存在就返回0
help(py万物)
查看使用方法和帮助

列表(list)

列表(类型为 list)是处理一组有序项目的数据结构,便可以在列表中存储一个序列的项目。
列表是可变类型的数据,建立列表使用[]中括号。
列表的值是能够更改的.
列表能够包含变量,元组,列表等等.

列表基本操做

基本上面有的操做,列表都是同样.如下是部分操做
(一级或多级)列表名.append(追加元素元组) 列表末尾追加

In : b=[] # 定义一个空列表
In : a=[b,'123','456']
In : a
Out: [[], '123', '456']
In : a[0].append("linux")  # 向签到的b(空列表)中插入数据
In : a
Out: [['linux'], '123', '456']

列表名.remove(删除元素) 列表名.del(删除元素 或 变量索引) 列表内删除
列表名[索引]=KKK 支持直接修改
列表好像有个迭代相关操做,未彻底熟悉,先占坑.

字典类型

使用{}大括号定义,是Python中惟一的映射类型(哈希表)

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它经过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫作散列函数,存放记录的数组叫作散列表。给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能获得包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。from 百度百科

字典索引不像列表的下标,字典的索引可使用许多不一样数据类型,不仅是整数。字典的索引被称为“键”,键及其关联的值 称为“键-值”对。
字典对象是可变的,可是字典的键(key)必须使用不可变对象,一个字典中可使用不一样类型的key。
像元组,字符串等都是不可变的,均可以做为key。
而列表是可变的,没法做为key。
key是惟一的

字典操做

字典操做有点多,如下粘贴别人的总结,其它方法能够用dir(dict)查看

  1. keys() 获取字典的key
  2. values() 获取字典中全部的values
  3. items() 把字典转换成列表
  4. get() 若是字典中有该key,则返回key值,若是没有,则返回空,也能够本身定义返回值
  5. dic.get(‘Name’,‘python’),若是存在name,则返回values,不然返回Python
  6. has_key(‘key’) 判断key的是否存在,存在返回True,不然返回False
  7. dic1 = dic.copy() 拷贝字典到一个新的字典中去
  8. clear() 清除字典中的元素
  9. pop() 删除一个key,同时打印该key的value,若是key不存在,则返回keyerror,或者指定返回值 dic.pop(‘name’,True)
  10. update() 把一个字典更新(添加)到另外一个字典中
  11. fromkeys(s,value) 把序列s,做为字典的key,若是不给value,则默认是none,若是指定value,那么全部key对应的值都为value

以上是经常使用操做,如下是某些方法举例:

for循环字典
  1. 遍历字典的key-value(键值对)
    其实dictionary至关于一栋楼,key就至关于门牌,value就是这间房子里面的租客.
for key,value indictionary.items(): 
##for遍历字典中具体的key和value,使用字典对象的items()方法获取字典的“键值对”列表。
           print(key,value)
  1. 遍历字典的项(键值对)
for item in dictionary.items(): 
##for遍历能够获取字典中的所有“键值对”,使用字典对象的items()方法获取字典的“键值对”列表。
     print(item)
  1. 遍历字典的value(值)或者 key (键)
for value '''key'''  indictionary.values '''keys''' ():
##经过for循环遍历能够获取字典中的具体的value(值)或者 key (键)。
      print(value'''key''')
字典基本定义格式

dictionary={‘key1’:‘V1’,‘key2’:‘V2’,‘key3’:‘V3’,}##注意逗号就好~

类型转换

Python内支持数据类型(瞎几把)互相转换,这个实现须要应用工厂函数:
str、list、dict、tuple等等。

  1. str() : 用于把整型、浮点型等转换为字符串
  2. list() : 用于把一个可迭代对象转换为列表
  3. dict() : 把一个可迭代对象(每次迭代返回两个数据),转换为字典
  4. tuple():把一个可迭代对象转换为元组

运算符

运算符:赋值运算符、算数运算符、关系运算符、逻辑运算符
表达式: 用运算符把数据链接起来的一种式子
PS:
支持各类按位运算,左移右移按位取反各类_过于底层,不太适合python

赋值

=表示赋值,其余的参考C语言,基本同样,可是Python下不用指定变量的类型,它会自动根据你赋值的类型来定,使用type(x) 来查看变量的类型。

算数

** 表示乘方 3**8 表示3的8次方(本校class viva也支持这种输入)
// 结果取整 若是结果是1.99,最后输出就是1
其余参考C语言,发挥想象力~~~~~

逻辑

返回值是布尔值:true 和 false
三种逻辑 and or not

关系

== >= !=这些,参考C语言吧

特殊符号

in/not in 检测一个元素是否在一个序列中 is /is not 测试两边的统一性(包括数据和数据类型)