天路:第二天

一、标准库和第三方库的引用:

sys库、os库的调用

import sys
print(sys.path)#打印环境变量
#自己创建三方库时不可以和导入的库名相同
print(sys.argv)#打印当前脚本的绝对路径
1 import os
2 a = os.system('dir')#只可以执行并输出,不可以储存
3 print(a)
4 b = os.popen('dir')#打印对象的内存地址
5 b = os.popen('dir').read()#操作、储存、读取(read)
6 print(b)
7 os.mkdir('new film')#创建了一个新目录

自己编辑一个三方库,然后可以在执行文件中import引用,找模块顺序:当前目录-->site package,或者引用时加路径。

二、数据类型

字符串是 %s   整数 %d   浮点数%f

三元运算:

1 a,b,c = 1,3,5
2 d = a if a > b else c#d的值存谁,有两个条件,如果a大于b,d的值就为a,否则,d的值就为c
3 >>>d
4 >>>5
5 d = a if a < b else c#d的值存谁,有两个条件,如果a小于b,d的值就为a,否则,d的值就为c
6 >>>d
7 >>>1

bytes类型:

bytes和字符串的转换方式:

字符串(string)-----encode----->二进制(bytes)

二进制(bytes)-----decode----->字符串(string)

1 a = '我爱北京'
2 print(a.encode(encoding='utf-8'))
3 print(a.encode(encoding='utf-8').decode())

====================分割线=======================

列表操作:

list = ['a','b','c','d']

增1:list.append('e')#从最后面加

增2:list.incert(1,'e')#把e插入到a后面的位置

删1:list.remove('a')   #删除,但仍在内存上,可以取用

删2:del list[0] 或者  list.pop(0)     #彻底删除,无法再取用

删3:list.pop()   #删除最后一个

删4:del list   #删除整个列表

改:list[0] = 'A'      #把列表中0位置上的a改为A

查位置:list.index['b']     >>>1   #查询表示b在列表中的1位置上

从左向右数是正数,从0开始数,从右向左数是负数,从负数开始。

查元素:list[1]   >>>b  #表示位置1上的元素是b

切片查:list[1:3]   >>>b,c   #切片查询位置1到位置3的元素,返回结果不包括切片范围的最后一个元素(顾头不顾尾)

切片查:list[1:-1]   >>>b,c     #从位置1到最后一个位置这中间的元素

特殊情况:查倒数第一个到倒数第三个    list[-2:]    不可以写成list[-1:-2],冒号前面是左起,后边是右尾。

同样,查第一个到第三个,list[:2]这就是取前三个

 步长切片:list[0:-1:2]  & list[::2]  #列表中第一位到最后一位,隔一个取一个。

查列表长度:len(list)    >>>4    #列表中一共4个元素

查找相同元素的个数:list.count('元素')

清空列表:list.clear()

翻转列表顺序:list.reverse()

列表排序:list.sort()   排列顺序为:符号,数字,字母大-小(按照ask码顺序来排列)

列表合并:list.extend(list_2)   #把 list_2 并入到 list 中

列表复制(浅copy):list_2 = list.copy()  &  list_2 = copy.copy(list)   &  list_2 = list (list) #(最后一个是工厂函数,外部的list是指令不是列表名)

#复制后修改 list 中的元素,list_2 里面不进行更改。但是,如果 list 里面有子列表的话,修改子列表中的内容,list_2也会跟着改

列表复制(深copy): import copy    list_2=copy.deepcopy(list)

====================分割线=======================

元祖类型:

基于元祖不可变的性质,他只有两种功能:count  和  index

tuple = ()

====================分割线=======================

 高亮显示:

\033[31:1m%s\033[0m      #中间的%s是占位符,内容高亮显示,

31是红色字体,41就是背景红色

32是绿色字体,42就是背景绿色

====================分割线=======================

字符串操作:

例: name = 'alex'

S.capitalize()    #首字母大写

S.count()    #括号内写元素,统计这个元素在字符串中有几个

S.center(20,'*')    #一共20个字符,长度不够的用*号补充,字符串放在中间

S.endswith('x')    #判断是否以x结尾,返回True 或者 Fales

S.expandtabs(tabsize = 30)    #如果字符串中有'' \t  ''(空格),则空格大小设置为30

S.find()   #查找括号内的元素的起始位置  (字符串也可以切片)

S.format()  #格式化输出的一种

S.format_map( )   #里面是字典,键是字符串中占位的东西,值是实际指的东西

S.isalnum()   #判断是不是英文字符加上数字

S.isalpha ( )   #判断是否为纯英文字符

S.isdecimal( )   #判断是否为10进制数字

S.isdigit( )  #判断是否为整数

S.isidentifier( )   #判断是否为合法变量名

S.islower( )    #判断是否全部小写

S.isspace( )   #判断是否为空格

S.istitle( )  #判断是否全部首字母大写

S.isprintable  #判断是否可以打印  tty.file   drive file这些文件是无法打印的

S.isupper( )   #判断是否全部大写

S.join( )     print('my name is jack'.join('='))   >>>   =my name is jack=     

或者  print('+'.join(['1','2','3']))    >>> 1+2+3    #把列表中的元素合并成一个字符串

S.ljust(50,'*')  #把字符串变成长度50并用*号填充   字符串在左起

S.rjust(50,'*')  #把字符串变成长度50并用*号填充   字符串在右起

S.lower( )    #把字符串全部小写

S.upper( )   #把字符串全部大写

S.strip( )  #去掉字符串两边的换行或者空格

S.lstrip( )  #去掉字符串左边的换行或者空格

S.rstrip( )  #去掉字符串右边的换行或者空格

str.maketrans( )    p = str.maketrans('abcde','12345' )     print('alex li'.translate(p))    >>>1l5x li

#作用是  先对应abcde和12345,然后字符串中如果有这个字母,就替换成相应的数字(可以用于密码加密)

S.replace( )     ''alex li''.replace('l','L',1)   >>> aLex li

#把''alex li''中的 l 替换成 L ,替换数量为1个

S.rfind( )  #找到括号中元素在字符串中的位置,如果有相同元素的话,就找最右边的,并返回位置

S.split( )     ''my me ma mack''.split('m')    >>>  ['y','e','a','ack']   以m作为空格分割字符串并组成一个列表

#如果括号内为空,把字符串按照空格变成字符   

S.swapcase( )    #把字符串中的大写换成小写,小写换成大写

S.title( )   #把字符串首字母大写

S.zfill( X)   #把字符串变成长度为X,位数不够的用0填充

====================分割线=======================

字典操作:

{key:value}

 
 
  info = {
'stu_001':'jack',
'stu_002':'candy',
'stu_003':'ruby'
}
info['stu_001']#取值(要肯定有这个值)
info.get('stu_001') #有就取值,没有就返回None(更建议用这个)
'stu_001' in info #有这个就返回T,没有就返回fales
info['stu_001'] = 'JACK' #修改值
info['stu_004'] = 'mmp' #增加键值对
del info['stu_001'] #删除键值对
info.pop('stu_001') #删除键值对
info.setdefault('stu_004',{'mark'})
#创建一个新的键值对,如果这个key存在,就返回原来的数据,没有就新建
info_2 = {'stu_001':'alex',
1:3,
2:5}
info.update(info_2)
#合并两个字典,有交叉的k就覆盖新的值,没有就新建
info.items()#把字典转成列表,里面的键值对变成元祖
dict.fromkeys([4,5,6],'A')
#初始化一个新的字典,批量创建key(456),然后赋值都为(A),赋值不写的话就都为空(none)
#但是,如果要修改值得话,是都变化了,不是单个变化
字典的循环:
for k in dict:
print(k,dict[k])
for k,v in dict.items(): (不建议用!)
print(k,v)

====================分割线=======================

购物车作业:

 1 # 启动程序后,让用户输入工资,然后打印商品列表
 2 # 允许用户根据商品编号购买商品
 3 # 用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
 4 # 可随时退出,退出时,打印已购买商品和余额
 5 commodity_list = [
 6     ['AKM',1000],
 7     ['M416',1500],
 8     ['SCAR',2000],
 9     ['UMP9',800],
10     ['子弹',50],
11     ['枪托',150]
12 ]
13 shopping_trolley = []         #购物车
14 wallet = int(input('请输入你的工资:'))
15 while True:
16     count = 0
17     for i in commodity_list:
18         count += 1
19         print(count,i)
20     consumer_choice = input('''
21 请输入你要选购的商品:
22 退出请按[Q]''')
23     if consumer_choice.isdigit():
24             consumer_choice = int(consumer_choice)
25             if consumer_choice <= len(commodity_list) and consumer_choice > 0:
26                 consumer_choice -= 1
27                 wallet -= commodity_list[consumer_choice][1]
28                 if wallet >= 0:
29                     shopping_trolley.append(commodity_list[consumer_choice])
30                     print('你选购了{},你的余额{}'.format(commodity_list[consumer_choice],wallet))
31                 else:
32                     print('你的余额不足,无法购买!')
33             else:
34                 print('你的输入有误,请重新输入')
35     elif consumer_choice == 'Q' or consumer_choice == 'q':
36         if len(shopping_trolley) > 0:
37             print('''
38             -----你购买了以下商品----
39             {}
40             你的余额:{}
41             -------欢迎下次再来------'''.format(shopping_trolley,wallet))
42             break
43         else:
44             print('你什么都没买!')
45             break
46     else:
47         print('你的输入有误,请重新输入')

猜你喜欢

转载自www.cnblogs.com/quegai18/p/9228366.html