alex python of day2
模块
sys模块:sys模块是用c语言写的,所以在lib下是不会有sys.py这个文件存在
1 import sys 2 print(sys.path) #打印环境变量 3 print(sys.argv) #打印相对路径
os模块
1 # author:"Jason lincoln"
2 import os
3 #cmd_res=os.system("dir") #只执行命令,不保存结果
4 cmd_res = os.popen("dir").read()
5 print("-->",cmd_res)
6 os.mkdir("new_dir") #创建一个目录
Pyc是什么鬼?
当程序执行的时,python内部会先将源代码编译成所谓的字节码的形式,这些字节码可以提高执行速度。python将把程序的字节码保存为一个以.pyc为扩展名的文件(".pyc"就是编译过的“py”源代码)。下一次运行程序时,如果你在上次保存字节码之后没有修改过源代码的话,python将会加载.pyc文件并跳过编译这个步骤。当python必须重新编译时,它会自动检查源文件和字节码文件的时间戳:如果你又保存了源代码,下次程序运行时,字节码将会自动重新创建。
python的数据类型
整型(int):python2分长整型和整型,整型的内存最大为2的32次方字节
浮点型(float):比如小数
布尔值:真或假 1或0
字符串: "helloword"
数据运算
运算符
+ 两个数相加
-
*
% 取模,例如9%4等于1
** 例如 2**3等于8
// 例如9//4等于2
比较运算
== 等于
!= 不等于
<> 不等于
>
<
>=
<=
赋值运算
==
+= c+=a等效于c=c+a
-= c-=a等效于c=c-a
*= c*=a等效于c=c*a
%= c%=a等效于c=c%a
//= c//=a等效于c=c//a
**= c**=a等效于c=c**a
逻辑运算
and 布尔“与” ,x和y同时为真即x and y为真,否则为假
or 布尔“或”,x和y只要有一个为真即 x or y 为真 ,X和y同时为假则x or y为假
not 布尔“非”,x为真则返回为假,x为假则返回为真
成员运算
in 如果在指定序列中找到值返回ture,否则返回Fasle.
in not 如果在指定的序列中没有找到值就返回ture,否则返回false
身份运算
is is是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象
位运算
& 按位与运算 两位同时为“1”,结果才为“1”,否则为0
| 按位或运算 只要有一个为1,其值为1
^ 按位异或 相同为“0”,不同为“1”
x=0101,y=1011
x^y==1110
~ 对一个二进制数按位取反,即将0变1,1变0。
<< a = a << 2 将a的二进制位左移2位,右补0。若左移时舍弃的高位不包含1,则每左移一位,相当于该数乘以2。
a=0011 0011 #十进制等于51 a==a<<2 a==1100 1100 #十进制等于204
>> a = a >> 2 将a的二进制位右移2位
将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。
操作数每右移一位,相当于该数除以2。
a=1100 1100 #十进制为204 a==a>>2 a=00110011 #十进制为51
bytes数据类型
三元运算
1 # author:"Jason lincoln" 2 3 a,b,c=1,3,5 4 d=a if a>b else c 5 print(d)
输出“5”
python3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分,文本总是unicode,由str类型表示,二进制数据则由byte类型表示。
![]()
encode和decode的转换

列表的使用
列表
# author:"Jason lincoln"
names=["Zhangyang","GuYun","Xuliangchen","xiangpeng"]
#print(names)
#print(names[0],names[2])
# 切片
#print(names[1:3]) #顾头不顾尾 从第一个开始取到第三个不包括第三个
#print(names[3])
print(names[-2:]) #从左往右数
# ['Xuliangchen', 'xiangpeng']
print(names[0:3])
#['Zhangyang', 'GuYun', 'Xuliangchen']
print(names[:3])
#['Zhangyang', 'GuYun', 'Xuliangchen']
names.append("Leihaidong")
print(names)
#['Zhangyang', 'GuYun', 'Xuliangchen', 'xiangpeng', 'Leihaidong']
names.insert(1,"chenronghua")
print(names)
#['Zhangyang', 'chenronghua', 'GuYun', 'Xuliangchen', 'xiangpeng', 'Leihaidong']
#names.remove("chenronghua")
#del names[1]
#names.pop() #如果不输入默认删除最后一个
#names.pop(1) #和del names[1]效果一样
print(names)
print(names.index("GuYun"))
print(names[names.index("GuYun")])
切片
1 #print(names[1:3]) #顾头不顾尾 从第一个开始取到第三个不包括第三个
2 #print(names[3])
3 print(names[-2:]) #从左往右数
4 ##['Xuliangchen', 'xiangpeng']
5 print(names[0:3])
6 ##['Zhangyang', 'GuYun', 'Xuliangchen']
7 print(names[:3])
8 ##['Zhangyang', 'GuYun', 'Xuliangchen']
9 names.append("Leihaidong")
10 print(names)
11 ##['Zhangyang', 'GuYun', 'Xuliangchen', 'xiangpeng', 'Leihaidong']
12 names.insert(1,"chenronghua")
13 print(names)
14 ##['Zhangyang', 'chenronghua', 'GuYun', 'Xuliangchen', 'xiangpeng', 'Leihaidong']
delete
1 ames.remove("chenronghua")
2 del names[1]
3 names.pop() #如果不输入默认删除最后一个
4 names.pop(1) #和del names[1]效果一样
列表之改
1 print(names)
2 print(names.index("GuYun"))
3 print(names[names.index("GuYun")])
统计
1 print(names.count("chenronghua"))
清空
names.clear()
反转
names.reverse()
排序
names.sort
合并
names.extend()
删变量
del 变量名
copy
1 names=["Zhangyang","GuYun",["alex","jack"],"xiangpeng","Xuliangchen"] 2 name2=names.copy() 3 print(names) 4 print(name2) 5 names[3]="向鹏" 6 names[2][0]="ALEX" #浅copy,只copy内存地址,同一块内存 7 print(names) 8 print(name2)

深copy
1 # author:"Jason lincoln" 2 import copy 3 names=["Zhangyang","GuYun",["alex","jack"],"xiangpeng","Xuliangchen"] 4 #name2=copy.copy(names) #和浅copy一样 5 name2=copy.deepcopy(names) #深copy 6 print(names) 7 print(name2) 8 names[3]="向鹏" 9 names[2][0]="ALEX" #浅copy,只copy内存地址 10 print(names) 11 print(name2)

浅copy
# author:"Jason lincoln" import copy person=['name',['a',100]] p1=copy.copy(person) #浅copy p2=person[:] #浅copy p3=list(person) #浅copy p1[0]='alex' p2[0]='fengjie' print(p1) print(p2)

元组
1 names=('jack','alex')2 names.index
3 names.count
购物车程序
需求:
1.启动程序后,让用户输入工资,然后打印商品列表
2.允许用户根据商品编号购买商品
3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4.可随时退出,退出时,打印已购买商品和余额
# author:"Jason lincoln"
shopping_list=[]
product_list=[
('iphone',5888),
('mac pro',12000),
('bike',800),
('alex python',120),
('coffee',31),
]
salary=input('please input your salary:')
if salary.isdigit():
salary=int(salary)
while True:
for index,item in enumerate(product_list):
# print(product_list.index(item),item)
print(index,item)
user_choice=input("选择要买啥?>>:")
if user_choice.isdigit():
user_choice=int(user_choice)
if user_choice<len(product_list) and user_choice>=0:
p_item=product_list[user_choice]
if p_item[1]<=salary: #买得起
shopping_list.append(p_item)
salary -=p_item[1]
print("Added %s into shopping cart,your current balsnce is \033[31;1m%s\033[0m"%(p_item,salary))
else:
print("\033[41;1m你的余额已剩[%s],还买个毛线啊\033[0m"%salary)
else:
print("product code [%s] is not list"%user_choice)
elif user_choice=='q':
print("exit......")
else:
print("invild option")
else:
print("输入数字啊,傻嗨!")
字符串操作
# author:"Jason lincoln"
#name ='my \tname is alex'
name="my \tname is {name} and i am {year} years old"
print(name.capitalize()) #首字母大写
print(name.count("a")) #统计
print(name.center(50,"-")) #打印50个字符,不够用“-”补齐,name放中间
print(name.endswith("ex")) #判断字符串以什么结尾
print(name.expandtabs(tabsize=30)) #加空格,没什么卵用
print (name[name.find("name"):]) #切片
print(name.format(name='alex',year=23))
print(name.format_map({'name':'alex','year':23}))
print('abc123'.isalnum()) #是不是阿拉伯数字和字母
print('Aassafsdf'.isalpha()) #是不是纯英文字母
'.isdigit()) #是不是整数
print('1f'.isdecimal()) #是不是十进制
print('f-f'.isidentifier())#判断是不是一个合法的标识符
'.isnumeric()) #是不是只有数字
print('qqQ'.isupper()) #是不是全是大写
']))
print(name.ljust(50,'*')) #放左边,不够用*补齐
print(name.rjust(50,'*')) #放右边,不够用*补齐
print('ALEX'.lower()) #变小写
print('alex'.upper()) #变大写
print('\nalex'.lstrip())#去左边的空格回车
print('alex\n'.rstrip())#去右边的空格回车
print(' alex\n'.strip())#去两边空格回车
p=str.maketrans(") #加密
print("alex li".translate(p)) #加密
print('alex li'.replace('l','L',1))
print('alex li'.rfind('l')) #找到最右边的值的下标
print('1+2+3+4'.split('+'))
print('1+2\n3+4'.splitlines())
print('Alex Li'.swapcase()) #大小写转换
print('alex li'.title())
print('alex li'.zfill(50)) #不够用0补上
字典
# author:"Jason lincoln"
info={
'stu1101':"TengLan Wu",
'stu102':"LongZe Luola",
'stu1103':"Xiaoze Maliya",
}
print(info)
print(info['stu1101'])
info["stu1101"]="武藤兰"
info["stu1104"]="Cangjingkong"
print(info)
#del
#del info['stu1101']
#print(info)
print(info.get('stu1105')) #查
print('stu1103' in info) #info has_key('stu1103') py2.x 判断
b={
'stu1101':'alex',
1:3,
2:5,
}
info.update(b)
print(info)
print(info.items()) #把字典转成列表
c=dict.fromkeys([6,7,8],"test") #初始化列表
print(c)
c=dict.fromkeys([6,7,8],[1,{"name":"alex"},444])
print(c)
c[7][1]='jack chen'
print(c)
for i in info: #字典转成列表 高效
print(i,info[i])
for k,v in info.items():
print(k,v)
多层嵌套
# author:"Jason lincoln"
av_catalog={
'欧美':{
'www.youporn.com':['很多免费的,世界最大的','质量一般'],
'www.pornhub.com':['很多免费的,也很大','质量比youporn高点'],
'letmedothistoyou.com':['质量很高,真的很高','全部收费,屌丝请绕过 '],
},"日韩":
{'tokyo-hot':["质量不怎么样",'听说是收费的']
},
'大陆':{
':['全部免费,真好,好人一生平安','服务器在国外,慢']
},
}
av_catalog['][1]="可以在国内做镜像"
av_catalog.setdefault("大陆",{'www.baidu,com':['呵呵']}) #找到key就替换,找不到就创建
print(av_catalog)
alex python of day2的更多相关文章
- python s12 day2
python s12 day2 入门知识拾遗 http://www.cnblogs.com/wupeiqi/articles/4906230.html 基本数据类型 注:查看对象相关成员 var, ...
- (转)Python作业day2购物车
Python作业day2购物车 原文:https://www.cnblogs.com/spykids/p/5163108.html 流程图: 实现情况: 可自主注册, 登陆系统可购物,充值(暂未实现) ...
- python学习day2
一.模块初识 python模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用 ...
- Python自学day-2
一.模块 模块分两种:标准库和第三方库,标准库是不需要安装就可以使用的库. import [模块名]:导入一个库,优先是在项目路径中寻找.自定义模块名不要和标准库模块名相同. sy ...
- Python学习-day2
这周时间充裕,把第一周的两个作业登陆验证和三级菜单做完后又用零零散散的时间看完了第二周的课程,不得不说老男孩这个教育方式感觉还是不错的,其实说白了就是花钱找个人监督自己学习呗,而且还强行让我们养成一些 ...
- Python基础-day2
1.Python模块python 中导入模块使用import语法格式:import module_name示例1: 导入os模块system('dir')列出当前目录下的所有文件 # _*_ codi ...
- alex python of day1
Print("hello word!")#打印hello word!向python世界发生第一声呐喊,仪式很重要 定义变量 name="Alex Li" nam ...
- alex python of day3
集合 # author:"Jason lincoln" list_1={1,4,5,7,3,6,7,9} list_1=set(list_1) #把集合变成列表 去重复 list_ ...
- python基础day2
一.python字符串 字符串是 Python 中最常用的数据类型.可以使用引号('或")来创建字符串 1.1Python访问字符串中的值 Python不支持单字符类型,单字符在 Pytho ...
随机推荐
- winPcap编程之环境搭建(一)
之前用winPcap做过一个拦截网络数据包的程序,作为当时的网络编程课程的课程设计,现在重新学习一下. 工具:codeblocks 要用到的一些东西:WinPcap.exe与winPcap一些库文件 ...
- Python数据分析(二): Pandas技巧 (1)
第一部分: ipython http://www.cnblogs.com/cgzl/p/7623347.html 第二部分: numpy http://www.cnblogs.com/cgzl/p/7 ...
- rewrap-ajax.js插件
很久没有动手写技术的文章,这个过程中间一直在写日记,生活点滴的记录替代了技术文章的编写,可以看出以往的内心是激情或烈火,现在是... 最近写了一个JS插件,用圈内的话说叫造了个轮子,造的好与不好都不是 ...
- web前端——10个妨碍进步的学习方式
1.前言 从事web前端的人很多,每个人的学习方式,学习习惯基本不会一模一样!关于web前端(或者直接互联网),大家都知道,是做到老,学到老的一个行业.之前写文章的时候,我说过很多学习的方式和建议.今 ...
- opencv之从视频帧中截取图片
最近在训练一个人脸识别的模型,而项目训练需要大量真实人脸图片样本. 刚好项目用到opencv识别人脸,可以把每一帧图片保存下来,用此方法可以方便的获取大量的脸部样本,大约20分钟可以获取到10000张 ...
- C# AOP 面向切面编程之 调用拦截
有时候我们需要在代码中对方法调用进行拦截,并修改参数和返回值,这种操作叫做AOP(面向切面编程) 不过需要注意的是,AOP的效率很慢,在需要高效率场合慎用. 以下是C#的AOP方法: 首先建立一个控制 ...
- N厂劳力士黑水鬼V7出了1年,如今依旧被追捧,供不应求
今天和大家一起来谈谈,风靡复刻界的潜航者,国人眼中的一劳永逸,何为一劳永逸,即(用这个腕表能省很多事)真的有这么牛?其实不然只要是机械腕表都会有或多或少的问题,一劳永逸更多的是指腕表的质量给力,所谓潜 ...
- 四、MVC简介
一.高内聚.低耦合 大学的时候,上过一门叫<软件工程>的课程,课程中讲到了耦合,解耦等相关的词汇,当时很懵懂,不解其意. 耦合:是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影 ...
- OpenCV Image Watch 调试插件
昨晚偶然发现vs2012的这个很神奇的插件,对于经常使用opencv的人来说,这个插件无疑是我们的调试神器.今天马上下载试用,感觉超级棒!~以后要想查看图像结果,不用再imshow了! Image W ...
- win10 安装Node.js 报错:2503
解决方法: 使用管理员打开CMD