世界上大概有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 --> bytesprint(s2)ss = s2.decode(‘gbk‘) #bytes-->strprint(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(‘输入有误,请重试‘)
原文地址:https://www.cnblogs.com/yooxxroo/p/8830868.html