标签: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(‘输入有误,请重试‘)
标签:das 自己 import 商品 long hang 数值 enumerate etl
原文地址:https://www.cnblogs.com/yooxxroo/p/8830868.html