Python Day2 - 不给别人添麻烦

模块(库)分两种:标准库、第三方库

import sys
print(sys.path)  #打印环境变量
print(sys.argv)  #打印文件路径


import os

cmd_res = os.system('dir') #一调用就直接输出屏幕了,不会给变量
print('-->',cmd_res)  #0 只是代表成功与否 ,0代表成功


cmd_res = os.popen('dir')  #这样打印的是内存对象地址
print('-->',cmd_res)

cmd_res = os.popen('dir').read()  #执行后存在内存的某个地方,需.read()取出结果
print('-->',cmd_res)

#os.mkdir('new_dir')  #创建一个new_dir文件夹



msg = '我爱北京天安门'
print(msg.encode(encoding='utf-8')) #转存2进制(bytes类型)
print(msg.encode(encoding='utf-8').decode(encoding='utf-8')) #转存2进制(bytes类型)再转回来。


1、数字:整数

int(整型)
float(浮点型)
complex(复数)

2、布尔值
真 或 假
1 或 0
True 或 False

三元运算

result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2

decode 解码
encode 编码

本节内容
1、列表、元组操作
2、字符串操作
3、字典操作
4、集合操作
5、文件操作
6、字符编码与转码
7、内置函数

__author__ = 'Chris Liu'

names = ['xiaoming','xiaoxiao','xiaoliang','xiaoqiang','xixi','liang','ming']

print(names)
print(names[0],names[2])
print(names[1:2])
print(names[1:])
print(names[:2])
print(names[-1])
print(names[:-1])
print(names[-1:-3])  #这样取不值,要从先-3
print(names[-2:])  #取后面两个值
print(names[::3],'---------') #步长切片

names.append('LiLei')  #添加元素
print(names)
names.insert(0,'XiaoHong') #0索引出插入元素
print(names)
names[1] = 'LiMing'  #替换元素

names.remove('XiaoHong')  #删除元素
del names[1]   #删除索引1元素 等于 names.pop[1]
print(names)

names.pop() #删除后一个
print(names)

print(names.index('xiaoliang')) #查收元素位置

names = ['xiaoxiao','XiaoHong', 'xiaoming', 'xiaoxiao', 'xiaoliang', 'xiaoqiang', 'LiLei']
print(names.count('xiaoxiao')) #查找有几个元素
#print(names.clear())  #清空列表
names.reverse()  #反转
print(names)
names.sort()  #排序
print(names)

names2 = [1,2,3,4]

names.extend(names2) #合并列表
print(names)
print(names2)
del names2  #删除变量


#浅copy 只 复制一层,第二层复制为地址,深copy 复制为独立
names = ['xiaoxiao','XiaoHong', 'xiaoming', 'xiaoxiao', ['alex','jack'], 'xiaoqiang', 'LiLei']
name2 = names.copy()  #浅COPY
print(names)
print(name2)
names[2] = '小明'
names[4][0] = 'ALEXANDER'  #浅COPY,copy了内存地址
print(names)
print(name2)


import copy

names = ['xiaoxiao','XiaoHong', 'xiaoming', 'xiaoxiao', ['alex','jack'], 'xiaoqiang', 'LiLei']
name2 = copy.deepcopy(names)  #深COPY
print(names)
print(name2)
names[2] = '小明'
names[4][0] = 'ALEXANDER'  #浅COPY,copy了内存地址
print(names)
print(name2)


__author__ = 'Chirs Li'
import copy

person = ['name',['saving',100]]
'''
#浅COPY 3种方式
p1=copy.copy(person)
p2=person[:]
p3=list(person)
'''
p1=person[:]
p2=person[:]

p1[0] = 'alex'  #浅copy用来创建联合账号
p2[0] = 'fengjie'

p1[1][1] = 50

print(p1)
print(p2)


字典操作
字典一种key value 的数据类型

__author__ = 'Alex Li'

#key-value
info = {
    'stu1101':'TengLan Wu',
    'stu1102':'LongZe Luola',
    'stu1103':'XiaoZe Maliya'
}

print(info)
print(info['stu1101'])

#修改
info['stu1101'] = '武藤兰'
info['stu1104'] = 'CangJingKong'

#删除
del info['stu1101']
info.pop('stu1102')
info.popitem() #随机删一个
print(info)

#查找
print(info.get('stu1105')) #有就返回,没有就None
print('stu1103' in info)  #查找返回True Flase


#多级嵌套及操作

#其他姿势
info = {
    'stu1101':'TengLan Wu',
    'stu1102':'LongZe Luola',
    'stu1103':'XiaoZe Maliya'
}

print(info.values()) #提取所有的值
print(info.keys()) #提取所有的键
info.setdefault('stu1101','xxxxx')  #先查找有无‘键’,有略过,无创建
print(info)
info.setdefault('stu1105','xxxxx')
print(info)

b = {'stu1101':'xiaoxiao'}
info.update(b)  #更新字典
print(info)

print(info.items()) #整个变成大列表


#用.fromkeys 创建字典 ,更改一个值 ,其他会全改了
c = dict.fromkeys([6,7,8],'test')   #初始化字典,值为'test'
print(c)

c = dict.fromkeys([6,7,8],[1,{'name':'alex'},444])   #初始化字典,值为'test'
print(c)
c[7][1]['neme'] = 'Jack Chen'  #会全改了
print(c)



for i in info:  #这种效率较高
    print(i,info[i])

for k,v in info.items():
    print(k,v)
    

字符串操作

__author__ = 'Chris Li'

name = 'my name is alex'

print(name.capitalize()) #首字母大写
print(name.count('a')) #统计
print(name.center(50,'-')) #打印50个字符,不够的‘-’不上,字符串放中间
print(name.encode(encoding='utf-8')) #转存2进制(bytes类型)
print(name.endswith('ex')) #判断是不是‘ex’结尾

name = 'my \tname is alex'
print(name.expandtabs(tabsize=30)) # '\t' 转换成‘30’个空格
name = 'my name is alex'
print(name.find('name'))  #返回字母开始位置索引
print(name[name.find('name'):]) #切片
name = 'my name is {name} and i am {year} old'
print(name.format(name='alex',year=23)) #格式化
print(name.format_map({'name':'alex','year':12})) #格式化
print('ab23'.isalnum())  #阿拉伯数字+英文字母, 返回True ,特殊符号会错误
print('abA'.isalpha()) #纯英文字符返回True
print('19'.isdecimal()) #十进制整数返回True
print('1A'.isdigit()) #判断是否整数
print('a 1A'.isidentifier()) #判断是不是一个合法的标识符(变量名)
print('33'.isnumeric())  #判断是否只有数字
print('My Name Is '.istitle()) #每个首字母大学
print('My Name Is'.isprintable()) #是否可打印的,它是一个tty file,drive file 是不能打印的
print(','.join(['a','b','c']))
print(''
      '+'.join(['1','2','3']))
print(name.ljust(50,'*')) #长50 不够的‘*’补上
print(name.rjust(50,'-'))
print('Alex'.lower())
print('Alex'.upper())
print('\nAlex\n'.lstrip())
print('\nAlex\n'.rstrip())
print('   Alex\n'.strip())  #去掉空格
p = str.maketrans('adcdefli','123$@456')
print('alex li'.translate((p)))  #随机密码
print('---')

print('alex li'.replace('l','L'))  #替换
print('alex li'.replace('l','L',1))  #替换个

print('alex li'.rfind('l'))  # 找到最右值的索引
print('al ex lil'.split(' ')) #分割
print('1+2\n3+4+5'.splitlines()) #按照换行分割
print('Alex Li'.swapcase())  #大小写反转
print('lex li'.title()) #单词首个字母大写
print('lex li'.zfill(50)) #长50  不够用零填充

程序练习

购物车程序
需求:
1、启动程序后,让用户输入工资,然后打印商品列表;
2、允许用户根据商品编号购买商品;
3、用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒;
4、可随时退出,退出时,打印已购买商品和余额。

作业:
购物车
用户入口
1.商品信息存在文件里
2.已购商品,余额记录

商家入口
1.可以添加商品,修改商品价格

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值