码迷,mamicode.com
首页 > 编程语言 > 详细

2.Python基础:数据类型介绍

时间:2018-04-14 12:28:47      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:das   自己   import   商品   long   hang   数值   enumerate   etl   

   世界上大概有3000多种语言,其中汉语是使用人数最多的语言,英语是使用最广泛的语言,国际交流,一般都会说英语。计算机也一样,他也有自己的语言,一方面说计算机非常强大,能处理各种复杂的程序,另一方面他却远远比不上人类,那就是语言的辨识度。

2.1 数据类型介绍

int(整型)

在32位机器。整数位数为32位,取值范围-2—31~2—31-1 即-2147483648 - 2147483647

在64位系统,整数位为64位,取值范围为-2—63~2-63-1,即-92232272036854775808~9223372036854775807

long(长整型)

跟C语言不同,Python的长整型没有指定位宽,即:Python没有限制长整型熟知的大小,但实际上由于机器内存有限,我们使用的长整型数值不可能无限大。

注意,自从Python2.2起,如果整数发生溢出,Python将自动将整数数据转换长长整数,所以如今在长整数据后面不加字母L也不会导致严重后果。

注意:在Python3里不再有long,全都是int

 >>> a = 2**64

type(a) #type()是查看数据类型的方法

<type ‘long‘>

>>> type(b)

<type ‘int‘>

i = 3

i = 6

print(i.bit_length())

转换 :

int ---> str:int(int) str全由数字组成

str---> bool 0 False 非零 True

print(int(True))

print(int(True)

2.2 字符串类型(str)。

在Python中,加了引号的字符都被认为是字符串!

>>>name = "zhao" #双引号

>>>age = "22"       #只要加引号就是字符串

>>> age2 = 22      #int

>>>msg = ‘‘‘My name is Alex, I am 22 years old!‘‘‘  #三引号

>>>

>>>hometown = ‘shangDong‘   #单引号也可以

注:单双引号没有区别,但是下边这种情况 需要考虑单双的配合。

msg = ‘‘‘

今天天气好,

想出去旅游。

,,,

print(msg)

字符串拼接

数字可以进行加减乘除等运算,祖父穿也可以进行相加,相乘的运算。

>>>name

‘ALex Li‘

>>>age

‘22‘

>>>

>>>name + age #相加其实就是简单拼接

>>>name*  10    #相乘其实就是复制多少次,在拼接到一起

ALex Li ALex Li ALex Li ALex Li ALex Li ALex Li ALex Li ALex Li ALex Li ALex Li ‘

注意,字符串的拼接只能是双方都是字符串,不能跟数字或其他类型拼接

Str切片

# s = ‘Python自动化运维21期‘
# s1 = s[0]
# print(s1)
# s2 = s[2]
# print(s2)
# s3 = s[-1]
# print(s3)
#切片
# s1 = s[0:6]#顾头不顾尾
# print (s1)
补偿切片:
# s3 = s[:5:2]
# print (s3)
# s4 =s[:]
# print (s4)
# s5 = s[-1:-5:-1] #:-1 倒着取必须有反向补偿
# print (s5)
# s6 = s[-2:-5:-1]
# print(s6)
# s7 = s[:6:2]
# print(s7)
#s = ‘oldBoy‘
# # s1 = s.capitalize() #首字母大写,其他字母小写
# # print (s1)

s2 = s.upper() #所有字母大写
print(s2)
s3 = s.lower() #所有字母小写

code = ‘QAR‘ == code:
print(‘验证成功‘)

s4 = s.swapcase()#大小写反转
print(s4)

# s = ‘alex wusir*oldboy3taibai‘#非字母的元素隔开每个单词首字母大写
# s5 = s.title()
# print(s5)

#s6 = s.center(30)  #居中 长度自己设定,默认填充物为None
# s6 = s.center(30,‘*‘) #填充*
# print(s6)


# s7 = s.startswith(‘ol‘) #查看以什么开头
# endswith #...结尾
# print(s7)
# s7 = s.startswith(‘B‘,3,5) #索引都是顾头不顾尾
# print(s7)

#strip  去除首位空格,制表符\ t,换行符。
# s8 = s.strip()
# print(s8)
# name = input(‘>>>‘).strip() 写项目一定要加strip
# if name == ‘oldboy‘:
# print (‘登陆成功‘)
#不仅仅是去除空格等,会去除指定元素后边的直到出现非指定元素
# lstrip() rstrip(0) 只去除左边或者右边的
# #split (str---> list) 由字符串转化为列表
# s =‘oldboy,wusir,alex‘
# # l = s.split()
# # print(l)
# l2 = s.split(‘o‘) #三元素割出4个 4 变5
# print(l2)

Join 命令(
以某些连接符链接,组成新的字符串(将列表转化成str)
# s =‘oldboy‘
# s9 = ‘+‘.join(s)
# print(s9)

# s = ‘打铁锤fadasd铁锤妹妹范德萨‘
# s10 = s.replace(‘铁锤‘,‘钢蛋‘)
# print(s10)

#find index 通过元素找索引  index找不到返回-1 find 找不到报错
#s = ‘oldboy‘
# ind = s.index(‘d‘)
# print(ind)
# # ind = s.find(‘o‘)
# print(ind)
# ind = s.find(‘A‘)
# print(ind)
# ind = s.find(‘A‘)
# print(int)

格式化输出 format()
# res=‘我叫{}今年{}岁,爱好{}.format(‘egon‘,18,‘male‘)‘
# print (res)
# res=

公用方法: len count

# s = ‘faafafsadasfafaafasf‘
# print(len(s)) #查看有多少元素 长度

List列表
# li = [111,‘alex‘,222,‘wusir‘]
# # print(li[1])
# print(li[:3:2])
#l = [‘老男孩‘,‘alex‘,‘wusir‘,‘taibai‘]
#增
#append 在后面追加一个值
# l.append(‘葫芦‘)
# print(l)
# insert 插入 从索引入手
# l.insert(1,‘景女神‘)
# print(l)

#迭代添加 extend
# l.extend(‘alex‘)
# l.extend(‘111‘)
# print(l)

#删 pop 根据索引去删 有返回值
# l.pop(0)
# print(l)

#remove 根据元素去删
# l.remove(‘alex‘)
# print(l)

#clear 清空内容 不删除列表
# l.clear()
# print(l)

#del 1)删除内存级别列表
# del l
# print(l)
#2) 按照索引去删
# del l[:3]
# print(l)
#3) 按照元素去删
# l = [‘老男孩‘,‘alex‘,‘wusir‘,‘taibai‘]
#改
#按照索引改
# l[2] = ‘武藤兰‘
# print(l)
#按照切片去改
# l[:2] = ‘abc‘ 按照最小元素添加

#查
# 1> 按照索引查
# 2> 按照切片查询
# for i in l:
# print(i)

# ll = [1,2,3,1,2,1,1,4]
#其他方法
# count 计数
# print(ll.count(1))
#len 测量长度
# print(len(ll))
#通过元素找索引
# print(ll.index(4))

# l2 = [2,6,6,9,3,1,5,]
# #sort排序
# # l2.sort()
# # print(l2) 从小到大
#
# # l2.sort(reverse=True)
# # print(l2) 从小到大
#
# #reverse 倒叙
# l2.reverse()
# print(l2)

#列表的嵌套
# ll = [1,2,‘alex‘,‘wusir‘,[‘oldboy‘,‘ritian‘,99]]
# print(ll)
# ll[2] = ‘ALEX‘
# print(ll)
# print(ll[2].upper())
# ll[2] = ll[2].upper()
# print(ll)

Dict 字典
# dict 二分查找:字典的key是唯一的 必须是不可变的数据类型
# 不可变的数据类型(可hash): str bool tuple int
# value是任意数据类型。
# 可变的数据类型: dict list set
# 容器类的数据类型 list tuple dict set
#字典: 存储数据多 ,关系型数据,查询速度快(二分查找)
#dic = {‘name‘:‘taibai‘,‘age‘:‘21‘,‘hobby‘:‘gril‘,}
#增删改查
#增
# dic[‘high‘] = 180 有则覆盖(改),无则添加
#print(dic) #3.6版本之前字典无序
# dic.setdefault(‘high‘,100) #有则不变 无则添加
# print(dic)
#删
#dic.pop(‘name‘)
#print(dic.pop(‘name‘))#返回值 对应的值

#clear删除内容
# dic.clear()
# print(dic)
#删除内存
# del
# del dic
# print(dic.popitem()) #随即删除,返回值
# print(dic)
# print(dic.pop(‘name1‘,‘没有此key sb‘))
#print(dic)

#改
#dic2.update(dic) #将dic的值对应添加到dic2中

#查
#print(dic[‘name‘])
# print(dic.get(‘name1‘))
# print(dic.get(‘name2‘,‘没有此key,sb‘))

#len
# print(len(dic))# 测试字典长度

#fromkeys 创建字典 可迭代
# dic1 = dic.fromkeys(‘abc‘,‘zhangsan‘)
# print(dic1)
# dic2 = dic.fromkeys([1,2,3],‘lisi‘)
# print(dic2)
# dic3 = dict.fromkeys(‘abc‘,[])
# print(dic3)
# dic3[‘a‘].append(‘老板还‘)
# print(dic3)

#dic = {‘name‘: ‘taibai‘, ‘age‘: 21, ‘hobby‘: ‘girl‘, }
# dic[‘name‘] = ‘ritian‘
# print(dic)
# print(dic.pop(‘name‘))
# print(dic.pop(‘name1‘,‘meiyousb‘))
# dic.clear()
# print(dic)
# print(dic.popitem())
# print(dic)
# dic[‘name‘] = ‘laonanhai‘
# print(dic)
# print(dic.get(‘name‘))
# for i in dic.items():
# print(i)
# for k,v in dic.items():
# print(k,v)
# dic = {
# ‘name_list‘:[‘b哥‘, ‘张帝‘, ‘人帅‘, ‘kitty‘],
# ‘老男孩‘:{
# ‘name‘:‘老男孩‘,
# ‘age‘: 46,
# ‘sex‘: ‘ladyboy‘,
# },
# }
# dic.setdefault(‘骑兵‘)
# print(dic)


元祖
# 只能查 不能增删改
# tu = (11,2,True,[2,3,4],‘alex‘)
# # for i in tu:
# # print(i)
# print(tu[1])
# print(tu[:3:2])
# # print(tu.index(True))
# print(tu.count(2))
# print(len(tu))
# tu[-2].append(666)
# print(tu)

集合:
无序 不重复的数据类型。它里面的元素必须是可哈希的,
但是集合本身是不可哈希的
#1:关系测试 交集和并集 子集 差集
#2:去重 (列表的去重)
# setl1 = {1,‘alex‘,False.(1,2,3)}
# ll = [1,1,1,1,2,2,6,5,]
# l2 =list(setl1)
# print(l2)
#增 add 单个增 update 迭代增
#删
#remove 删除一个元素
# set1 = {1,2,3,4,5}
# set2 = {4,5,6,7,8}
#交集:
# print(set1 & set2)
# #并集
# #print(set1 | set2)
# print(set1.union(set2))
# 差集
# print(set1 - set2)
#反交集
# print(set1 ^ set2)
#子集
#print (set1 < set2) (超集)
#动集合
# s = frozenset(‘barry‘)
# print(s,type(s))
#数据类型补充
#range 可定制的数字列表
# for i in range(10):
# print(i)
# l1 = [‘alex‘,‘wusir‘,‘taibai‘,‘barry‘,‘老男孩‘]
# # del l1 [1::2]
# # print(l1)
# for i in range(len(l1)-1,-1,-1)
# if i % w == 1:
# del li[i]
# #再循环一个列表时,不要进行对列表删除的动作(改变列表个数)
#再循环字典时,不要对字典进行删除(不改变字典的大小)
# dic = {‘k1‘:‘v1‘,‘k2‘:‘v2‘,‘k3‘:‘v3‘,‘u‘:666}
# l1 = []
# for i in dic:
# if ‘k‘ in i:
# l1.append[i]
# for i in ll:
# del dic[i]
# print[dic]
#tu 元组里边只有一个元素并且没有逗号隔开,那么他的数据类型
#与该元素一致

小数据池 copy 只有int 和 str

id == is
# a = ‘alex‘
# b = ‘alex‘
# print(a == b) #数值
# print (a is b)#内存地址
# python 中有小数据池的概念
# int -5 到 256 的相同的事全都指向一个内存地址 (节省空间)
#str: s = ‘a‘*20 以内都是同一个内存地址 超过20就不是
#只要字符串含有非字母元素,那就不是一个内存地址

#深浅copy
#赋值运算,它们公用一个列表
# a = [1,2,3]
# b = a
# a.append(666)n/
# print(a,b)
# 浅 copy 第一层不同 之后相同
# l1 = [1,2,3]
# l2 =l1.copy()
# l1.append(666)
#深copy 完全不同
# import copy
# ll = [1,2,3,[22,33]]

#编码
#python 3x
#1.不同编码之间的二进制不能互相识别
#2.python3x str 内部编码方式为unicode
#但是,对于文件的存储,和传输不能用unicode(占用内存太大)
# bytes
# bytes类型:内部编码方式为非unicode(utf -8 gbk)

# s = ‘中国‘
# print(s,type(s))
#转化
s = ‘中国‘
s2 = s.encode(‘gbk‘) #str --> bytes
print(s2)
ss = s2.decode(‘gbk‘) #bytes-->str
print(ss)
课后作业

购物车作业
money = input(‘请输入您的钱数:‘)
shopping_car = [] #购物车列表
if money.isdigit(): #判断是否为int
money = int(money)
else:
exit(‘请输入正确钱数‘)
welcome_msg = ‘欢迎光临‘ #msg
print(welcome_msg)
goods_list = [(‘电脑‘,1999),
(‘鼠标‘,10),
(‘游艇‘,20),
(‘美女‘,998)
] #产品列表
flag = 0 #标志
while flag is not True:
print(‘商品表 :‘.center(50, ‘-‘))
for item in enumerate(goods_list):
index = item[0]
p_name = item[1][0]
p_price = item[1][1]
print(index,p_name,p_price)
choice = input(‘输入商品序号>>>‘)
if choice.isdigit():
choice = int(choice) #限定输入的为数字
if choice < len(goods_list): #选择序号要在范围内
p_item = goods_list[choice]
if p_item[1] <= money:
shopping_car.append(p_item)
money -= p_item[1] #减去商品金额
print(‘已经购买‘)
for item in shopping_car:#循环一次打印购物车
print(item)
print(‘你的余额为[%s]‘ % money) #输出余额
else:
print(‘无此商品‘)
elif choice == ‘q‘:
print(‘已经结束购物:‘.center(40,‘-‘))
for item in shopping_car:
print(item)
print(‘结束‘)
print(‘剩余[%s]‘ % money)
flag = True
elif choice == ‘c‘:
print(‘请选择商品序号购买‘)
for item in shopping_car:
print(item)
print(‘金额为 %d‘ % money)
else:
print(‘输入有误,请重试‘)



 

2.Python基础:数据类型介绍

标签:das   自己   import   商品   long   hang   数值   enumerate   etl   

原文地址:https://www.cnblogs.com/yooxxroo/p/8830868.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!