一、运算符

in方法

"hello" in "abcdefghijklmnopqrstuvwxyz"
"li" in ["gg","li"]

二、基本数据类型

int

a.创建方式

n1=123#根据int类型,创建了一个对象
n2=int(123)#根据int类型,创建了一个对象
#在第一句运行时会调用第二句,第二句在内存创建地址
int特有的功能在
int类
功能1
功能2
功能3
__init__(在类名里加一个括号(int(123)),就执行这个类
的功能就像上面的第二句)
n1=123执行时先执行n1=int(123)在执行n1=int.__init__(123)

init(初始化)(不仅限于int可用)
__init__(self,x,base10)(base10表示创建一个十进制的数)
int("sdfs"(字符串),base0(2))把这个字符串以二进制换为十进制输出

a2=int("0b100",2)
print(a2)
输出结果为4

b.

python中对常用的数做了优化例如n1=123,n2=123,则它们就指向同一个内存
(地址相同)不会分开存(-5~257),就像n1=123,n2=n1,超过范围分开存
?但是如果对n1重新赋值,不会影响n2的值?
查看内存地址id(变量名)
int(整型)

   在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,
即-2147483648~2147483647
   在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,
即-9223372036854775808~9223372036854775807
在赋值后 输出时如果超出int类型自动转换为long类型,long无长度限制,除非内存占完

str

a.创建
s1="alex"
s1=str("alex")

#无参数,创建空字符串
#一个参数,创建普通字符串

bytes和str的字符串和字节的转换
#两个字符串,str(字节类型,编码)将字节转换为字符串

name = "李璐"
a1=bytes(name,encoding="utf-8")
a2=bytes(name,encoding="gbk")
print(a1)#输出字符串编码为utf-8的字节 结果为b'\xe6\x9d\x8e\xe7\x92\x90'
print(a2)#输出字符串编码为gbk的字节 结果为b'\xc0\xee\xe8\xb4'

将字节转换为字符串

a3=str(bytes(a1),encoding="utf-8")
a4=str(bytes(a2),encoding="gbk")
print(a3)
print(a4)

一般出现x=str(...)的情况时,要么是创建字符串,要么是转化为字符串str(字节,编码)
一般出现x=bytes(...) #()里可为空 要么是创建字节,要么是转化成字节 bytes(字符串,要编成什么编码类型的字节)

bytes字节类型

b.str特有功能需记得

#s1.strip() #两端去除空格

#s1.startswith() #以..开头

#s1.find() #找子序列 "12" "zz"

#s1.replace()#将字符串的某子序列替换为指定的值

#s1.upper() #变大写

#s1.is... #是...吗
str()#执行str类里的__init__

c.公共功能

索引:s1[0]#取一个元素
切片:s1[0:2]#取多个元素
for,在py3.5里

as=["梨树"]
for i in as:
  print(as

) #在这里会逐个输出汉字在py27里不会输出汉字
会输出乱码或空白,因为在py27里是按字节输出的

name="李璐"
for i in name:
  print(i)
  print(bytes(i,encoding="utf-8"))

#输出16进制表示的二进制
#bytes可以将字符串转换为字节

name = "李璐"
for i in name:
  print(i)
  bytes_a=bytes(i, encoding="utf-8")
  print(bytes_a)#输出每一个字节是16进制
for b in bytes_a:
  print(b,(bin(b)))#输出一个元素时是10进制
#bin(b)二进制输出b

1、3.5for循环时,循环的每一个元素是"字符" 所以len("李璐")的长度为2
2.7for循环时每一个元素为字节
2、字符转字节:bianliangming=bytes("字符串",encoding="utf-8")
#指定编码类型为utf-8

print(bytes_a)#输出字节列表,默认每一个字节是16进制表示
for b in bytes_a:
print(b)
#循环时默认每一个字节十进制表示
十进制的数转换为二进制 bin(二进制的数字 )
结果

b'\xe6\x9d\x8e'
230 0b11100110
157 0b10011101
142 0b10001110

b'\xe7\x92\x90'
231 0b11100111
146 0b10010010
144 0b10010000

utf-8 中文3字节 gbk 中文2字节

name = "李璐"
a1=bytes(name,encoding="utf-8")
a2=bytes(name,encoding="gbk")
print(a1)
print(a2)

结果
b'\xe6\x9d\x8e\xe7\x92\x90'
b'\xc0\xee\xe8\xb4'

list

list()#执行list类里的__init__

a、

可变的元素的集合
str->创建字符串,或将其他的转换为字符串
list->创建列表,将其他元素转换成列表
1、创建

li=[11,22,33]
li=list()#创建一个空的列表
li=list([11,22,33)]

2、转换

s1="李璐"
li=list(s1)#s1可以是可迭代的数据,而且在转换时自动迭代转换为列表
#将循环的每一个元素,当作列表的元素
print(li)

结果: ['李', '璐']

dic=("k1",123123,"alex",123)
ll=list(dic)#元组转换为列表
print(ll)
dic={"k1":123,"k2":"alex","k3":"buff"}
ll=list(dic)
print(ll)#只输出key(键),字典默认循环时,循环的就是key
li=list(dic.values())#dic.values,获取dic的键的值
print(li)
lo=list(dic.items())#dic.items,获取dic的键值对
print(lo)

字符串、字典、元组都可以转换为列表

b、列表的特有功能

#追加
li.append()
#清除
li.clear()
#扩展自己,用另外一个可迭的对象,迭代的扩充到自己内部
li.extend()

li=["aa","ff","aasd"]
li.extend("123aaa")
print(li) #结果 ['aa', 'ff', 'aasd', '1', '2', '3', 'a', 'a', 'a']

#翻转,(倒置)自己内部的元素
li.reverse()
#向指定位置插入指定元素
#li.insert(1,"X")

c、公共功能

li=["ss","aaa"]
索引:li[1] 取得的元素的类型就是那个元素的类型
切片:li[1:2] 取得的元素类型是你取元素的变量的类型
例如

li=["ss","aaa"]
print(li[1]) 结果 aaa
print(li[1:2]) 结果 ['aaa']

所有的功能有两种一种是在原来的基础上改变,还有一种是不在原来基础上改变,生成新的

li=["aaa","fff","zzz0"]
li.append("aaasss")#在原来的变量上改变
print(li)
ls=" aaa "
lsssss=ls.strip()#不在原来变量上改变,原变量不变,对赋值的变量改变 print(ls)
print(lsssss)
d、 li=["alex",123,{"k1":"v1","k2":{"vv":("zzz",22,333),"ii":444}}]
zz=li[2]
aa=zz.get("k2")
aal=aa.get("vv")
aaa=aal[2]
print(li[2]["k2"]["vv"][2])
print(aaa)
元组
a.创建和转换
t=(11,22,33)
t=tuple((11,22,33))
b.特有方法


count
index

c.嵌套(元素不可修改)
t=(11,22,33)
t=((11,22,33))
t=(11,22,["alex",{"k1":"v1"}])

查找v1  t[2][1]["k1"]

e.元组的特性,不可修改,元素不可修改,但是元素的元素可以修改
t=(11,22,["alex",{"k1":"k2"}])
print(t)
t[2].append("sss")
print(t)
t[2][1].setdefault("k2","v3")#或用update或t[2][1]["k3"]=123
print(t)

结果:
(11, 22, ['alex', {'k1': 'k2'}])
(11, 22, ['alex', {'k1': 'k2'}, 'sss'])
(11, 22, ['alex', {'k1': 'v2', 'k2': 'v3'}, 'sss'])

整理:

一般字符串,执行一个功能,生成一个新内容。原来内容不变
list,tuple,dict,执行一个功能,自身进行变化#一般情况下

字典:

1、创建

a={"k1":123}
a=dict(k3=123,k2=456)
print(a)

用列表创建字典时不能直接加到字典里需要通过enumerate

le=[11,22,44]
# dicte=dict[le] #这个报错
dictea=dict(enumerate(le))
print(dictea) #结果{0: 11, 1: 22, 2: 44}

2、字典的特有功能
keys()
values()
items()
pop()
fromkeys()

a1 = {"keys":1111}
aa = a1.fromkeys(["key","keys2"], 123)
print(aa)#结果{'key': 123, 'keys2': 123}
n=dict.fromkeys(["k1","k2","k3"],[])#用这个方法创建的字典在对键追加值时,会对所有的键进行追加,因为他们在内存里公用一个[],而不用这个方法创建时就不会出现这个情况,例如下面的哪个例子
print(n)
n["k1"].append("s") #append在后面追加一个参数
n["k2"]=456
print(n) n2={"k1":[],"k2":[],"k3":[]}
print(n2)
n2["k1"].append("s")
print(n2)

结果{'k1': [], 'k2': [], 'k3': []}
{'k1': ['s'], 'k2': 456, 'k3': ['s']}
{'k1': [], 'k2': [], 'k3': []}
{'k1': ['s'], 'k2': [], 'k3': []}

python数据类型及其特有方法的更多相关文章

  1. python数据类型之内置方法

    python有六大数据类型,分别为整型.字符串.列表.字典.元祖和集合,这些基本数据类型都内置了很多方法,接下来一一探寻. python中整型有两种:int和float 1 int 使用dir函数查看 ...

  2. python数据类型内置方法

    内容概要 列表内置方法 字典内置方法 字符串转换成字典的方法 eval() 元组内置方法 元组相关笔试题 集合内置方法 列表内置方法 l1 = [2, 4, 5, 7, 3, 9, 0, 6] # 升 ...

  3. python数据类型内置方法 字符串和列表

    1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...

  4. python常用数据类型内置方法介绍

    熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...

  5. Python数据类型及其方法详解

    Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...

  6. Python数据类型方法整理

      前言:主要是对Python数据类型做一个整理,部分知识点源于<python3程序开发指南(第二版)>   一.Python的关键要素 1.1 要素1:数据类型  int类型 str类型 ...

  7. Python 数据类型常用的内置方法(三)

    目录 Python 数据类型常用的内置方法(三) 1.列表内置方法 1.sort():升序 2.reverse():颠倒顺序 3.列表比较运算 2.字典内置方法 1.对Key的操作 2.len( )- ...

  8. Python 数据类型常用的内置方法(二)

    目录 Python 数据类型常用的内置方法(二) 1.字符串类型常用内置方法 1.upper.lower.isupper.islower 2.startswith.endswith 3.format ...

  9. Python 数据类型常用的内置方法(一)

    目录 Python 数据类型常用的内置方法 1.整型 int 2.浮点型 float 字符串转浮点型: 3.字符串 str 多种类型转字符型: 索引 切片 len( )方法:统计字符串长度/个数 移除 ...

随机推荐

  1. 【Leetcode】【Easy】Binary Tree Level Order Traversal

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  2. 媒体查询,screen and 和only screen and有什么不同

    最佳答案: 彩屏设备 和 (最小宽度768px) 和 (最大宽度959px) 仅限 彩屏设备 和 (最小宽度480px) 和 (最大宽度767px) 在你发的代码中其实没有什么不同,用起来效果都是一样 ...

  3. 在linux代码中打印函数调用的堆栈的方法

    之前一直有这样的需求,当时问到,也没搜到方法,现在竟然既问到了,也搜到了,哎,世事真是不能强求啊! 在Linux内核调试中,经常用到的打印函数调用堆栈的方法非常简单,只需在需要查看堆栈的函数中加入: ...

  4. swift的特性:扩展、协议、泛型

    swift的特性:扩展.协议.泛型 扩展与继承:对象的生长方式: 协议:支持 协议->类型.类型<-协议 的双向抽象: 泛型:

  5. [19/03/22-星期五] 异常(Exception)(二)_捕获异常

    一.概念 捕获异常是通过3个关键词来实现的:try-catch-finally.用try来执行一段程序,如果出现异常,系统抛出一个异常,可以通过它的类型来捕捉(catch)并处理它, 最后一步是通过f ...

  6. [19/03/13-星期三] 数组_二维数组&冒泡排序&二分查找

    一.二维数组 多维数组可以看成以数组为元素的数组.可以有二维.三维.甚至更多维数组,但是实际开发中用的非常少.最多到二维数组(我们一般使用容器代替,二维数组用的都很少). [代码示例] import ...

  7. Python-time和datetime模块

    一.time模块 1.表示时间的三种方式 >>> import time >>> time.time() #当前时间戳 1509525556.8485825 > ...

  8. C# DataSet.Designer.cs

    今天在做项目的时候,发现一个很奇葩的问题,VS 中DataSet数据集的问题Dataset数据集更新,在保存后原有的Dataset.Designer.cs不变,又增加一个新的Dataset1.Desi ...

  9. c语言描述的链队列的基本操作

    #include<stdio.h> #include<stdlib.h> #define ok 0 #define error 1 //链队列特点在于不仅有链的头指针和尾指针, ...

  10. android中的键值对

    hashmap,contentvalue,namevaluepair,jsonobject ArrayList和HashMap的区别:内部元素:ArrayList储存的是单个对象(此对象是可以通过设置 ...