1、 模块

写模块的时候尽量不要和系统自带的模块的名字相同

调用模块的时候,会先在当前目录下查找是否有这个模块,然后再会如python的环境变量中查找

 

a.模块1:sys

代码如下:

 import sys
print(sys.path)

该代码的作用就是打印出python环境变量如下所示:

D:\\python培训\\s14\\day2

D:\\python培训\\s14

D:\\python35\\python35.zip

D:\\python35\\DLLs

D:\\python35\\lib

D:\\python35

D:\\python35\\lib\\site-packages  第三方库会放在这里

print(sys.argv) #打印当前文件的相对路径,但是在pycharm中打印的是绝对路径 打印结果如下所示:

['D:/python培训/s14/day2/sys_mod.py']

b.    模块2:os

代码如下:

 import os
cmd = os.system("dir") #执行命令,不保存结果
cmd_res = os.popen("dir").read() #执行命令,保存结果
print("--->",cmd_res)
os.mkdir("new_dir") #创建目录

2、数据类型:

数字:整型(int) float(浮点型),无论多大在3.0python中都是int 即3.0没有长整型这个概念

布尔值:真或假  1或0

字符串

关于字符串的操作例子:

name="zhaofan"
print(name.capitalize()) #将字符串首字母大写
print(name.count("a")) #查找字符串中a的个数
print(name.center(50,"-")) #显示结果如下:
---------------------zhaofan----------------------
print(name.endswith("an")) #判断字符串的结尾是否为an
print("My name is zhaofan".find("name")) #返回字符串的索引
print(name.isalnum()) #如果字符串中包括文字和数字的都返回true
print("zhaofan".isalpha()) #如果字符串中都为字母则返回true
print("".isdigit()) #判断字符串中是否都为数字
print("ZZZZ".islower()) #判断字符串是否为小写
name.strip() 去掉前和后面的空格
name.lstrip()去掉左边的空格
name.rstrip()去掉右边的空格
name.replace() 替换
name.rfind(“字符”) 查找字符串中最右边的那个字符的下标
name.split() 分割字符串,默认是以空格分割

python3中的不等于只能用!=  取消了2.0中的<>

3、列表

列表的特点:列表是有序的,列表可以有重复的值

list[数字]  就可以取出列表中相对应的值

关于列表切片:

list[1:2]从第二个位置开始取,包括其实位置,但是不包含结尾,即取出列表的第二个值list[1],list[1:3]就可以取出第2个和第3个值

list[-1] 取出列表的最后一个值

list[-2]取出列表倒数两个值

list[:3]取出列表的前两个值

 

列表的增加

list.append(“元素名”) 给列表的最后追加一个元素

列表的插入

list.insert(1,“元素名”)在列表的第一个第2个位置插入一个元素

列表的修改

name[2]=”新的元素名” 将列表的第3个元素进行更改

列表的删除

name.remove(“元素名”)删除列表中对应的元素

del names[1] 删除列表中相应的元素

name.pop()如果没有输出下标则删除列表中的最后一个值,如果删除数字下标就可以删除相对应的元素

 

查找列表中某个元素的位置,即下标

name.index(“元素名”)

name.clear() 情况列表

name.count(“元素名”) 找出列表的某个元素的个数

name.reverse() 将列表中元素进行反转

name.sort()将列表元素进行排序

name.extend(names2) 将name2并入到name列表中

del name2 就可以删除name2列表

4、关于列表的深浅拷贝

首先浅拷贝

name.copy()  就是浅拷贝

下面是关于浅拷贝的代码例子:

 names = ["ZhaFan","Dean",[1,2,3,4],"Dean","Dan","jack","Yes","A","a"]
names2 = names.copy()
print(names)
print(names2)
names2[1]="zhaofan"
print(names)
print(names2) names[2][0]=100
print(names)
print(names2)

上述代码的的运行结果如下:

D:\python35\python.exe D:/python培训/s14/day2/copy_qian.py

['ZhaFan', 'Dean', [1, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

['ZhaFan', 'Dean', [1, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

['ZhaFan', 'Dean', [1, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

['ZhaFan', 'zhaofan', [1, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

['ZhaFan', 'Dean', [100, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

['ZhaFan', 'zhaofan', [100, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

总结:从上述结果可以看出,names.copy()复制出一个与names列表一样的列表当修改列表中的内容时,

如果列表中嵌套有列表,那么如果修改是列表的第一层,那么只会更改修改的那个列表,如果修改的是嵌套里的列表的内容,则两个列表的内容的都会更改

如下图:

下面是关于深拷贝

深拷贝需要借助模块copy

深拷贝的时候,就是完全都开辟出另外一个内存空间,及修改其中一个列表中任意一个值,另外一个列表都不会发生变化:

代码例子如下:

 import copy
names = ["ZhaFan","Dean",[1,2,3,4],"Dean","Dan","jack","Yes","A","a"]
names2 = copy.deepcopy(names)
print(names)
print(names2)
names[2][1]=10000
print(names)
print(names2)

运行结果如下:

D:\python35\python.exe D:/python培训/s14/day2/copy_deep.py

['ZhaFan', 'Dean', [1, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

['ZhaFan', 'Dean', [1, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

['ZhaFan', 'Dean', [1, 10000, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

['ZhaFan', 'Dean', [1, 2, 3, 4], 'Dean', 'Dan', 'jack', 'Yes', 'A', 'a']

从代码可以看出,修改一起种一个列表中的内容,另外一个并不会发生变化

列表中打印每个元素

for I in names:

   print I

5、元组tuple

元组就是不可变的列表,即tuple一旦被初始化就不能修改,所以tuple不能用类似于list列表中的append(),insert()等这些修改的方法

关于元组的代码例子如下:

 tt_tuple = ("zhaofan","dean","jack")
print(tt_tuple.count("dean"))
print(tt_tuple.index("jack"))
print(tt_tuple[-1])

运行结果如下:

D:\python35\python.exe D:/python培训/s14/day2/tuple_ex.py

1

2

jack

7、关于用list列表编写一个简单的购物车的例子:

程序要求:

a. 启动程序后,让用户输入工资,然后打印商品列表

b. 允许用户根据商品编号购买商品

c. 用户选择商品后,检测余额是否够,够就直接扣款,不够就提示用户

d. 可以随时退出,退出时,打印已经购买的商品和余额

 goods_list=[["Iphone",5288],["Bike",1200],["Coffee",20],["Ipad",1800]]
shopping_list=[]
user_salary = input("请输入你的工资是:")
if user_salary.isdigit() is True:
user_salary = int(user_salary)
while True:
for key,iterm in enumerate(goods_list):
print(key,iterm[0],iterm[1])
user_choice = input("你想要买什么(输入商品的序号,q表示退出系统):")
if user_choice.isdigit() is True:
user_choice=int(user_choice)
if user_choice > len(goods_list):
print("\033[31;1m你输入的商品编号不存在\033[0m")
continue
if goods_list[user_choice][1] < user_salary and user_choice > 0:
shopping_list.append(goods_list[user_choice])
user_salary -= goods_list[user_choice][1]
print("\033[31;1m%s\033[0m 已经被添加到购物车,你的钱还剩余\033[31;1m%s\033[0m" %(goods_list[user_choice][0],user_salary))
continue
else:
print("\033[31;1m你没有足够的钱了,你只剩下%s人民币了\033[0m" %user_salary) if user_choice == "q":
print("你的购物车".center(50,"-"))
for key,iterm in enumerate(shopping_list):
print(key,iterm[0],iterm[1])
print("你还剩余\033[31;1m%s\033[0m人民币" %user_salary)
break
else:
print("请输入正确的工资")

8、关于字典dict

字典有如下特点:

1)    key-value格式,key是唯一的

2)    无序的

3)    查询速度快

一个简单的dcit字典的例子:

 info = {'name':'Dean',
'job':'IT',
'age':23,
'company':'XDHT'
}
print(info)

运行结果如下:

D:\python35\python.exe D:/python培训/s14/day2/dcit-2.py

{'company': 'XDHT', 'name': 'Dean', 'age': 23, 'job': 'IT'}

 

从这里也可看出字典是无序的

字典的增删查改

还有一种删除数据,但是如果字典为空的时候会报错,info.pop("name")

代码例子如下:

 info = {'name':'Dean',
'job':'IT',
'age':23,
'company':'XDHT'
}
print(info)
info.pop("name")

程序运行结果如下:

D:\python35\python.exe D:/python培训/s14/day2/dcit-2.py

{'name': 'Dean', 'company': 'XDHT', 'age': 23, 'job': 'IT'}

{'company': 'XDHT', 'age': 23, 'job': 'IT'}

Process finished with exit code 0

但是如果用info.pop()的时候,删除的数据不存在就会报错

将dict的key,value转换成列表的形式显示

print(info.items())

效果如下:

D:\python35\python.exe D:/python培训/s14/day2/dcit-2.py

dict_items([('job', 'IT'), ('company', 'XDHT'), ('age', 23), ('name', 'Dean')])

 

特别说明一下,在python3.0中取消了has_key()的用法

而代替的方法是可以in或者not in

代码例子:

if "name"  in info

   print("ok")

根据列表abc来创建dict里的key,后面的test是默认的value,如果不指定就是None

info = {}

info = info.fromkeys(["a","b","c"],"test")

print(info)

运行结果如下:

info = {}

info = info.fromkeys(["a","b","c"],"test")

print(info)

 

info.keys() #打印出字典的key

info.values() #打印出字典的value

 

方法1

for key in info:

print(key,info[key])

方法2

for k,v in info.items():

print(k,v)

 

在实际中尽量不要用方法2,因为方法2的效率比方法1的效率低,方法2会先把dict字典转换成list,所以数据大的时候不要用

9、关于字典的嵌套,代码例子如下:

 menu_dict={
"河南省":{
"焦作市":{
"修武县":{"AA","BB","CC"},
"武陟县":{"DD","EE","FF"},
"博爱县":{"GG","HH","II"}
},
"新乡市":{
"辉县":{"AA","BB","CC"},
"封丘县":{"DD","EE","FF"},
"延津县":{"GG","HH","II"}
}
},
"河北省":{
"邢台":{
"宁晋县":{"AA","BB","CC"},
"内丘县":{"DD","EE","FF"},
"邢台县":{"GG","HH","II"}
},
"唐山":{
"乐亭县":{"AA","BB","CC"},
"唐海县":{"DD","EE","FF"},
"玉田县":{"GG","HH","II"}
}
}
}

python---基础之模块,列表,元组,字典的更多相关文章

  1. python基础之02列表/元组/字典/set集合

    python中内置的数据类型有列表(list)元组(tuple)字典(directory). 1 list list是一种可变的有序的集合.来看一个list实例: #第一种方法: >>&g ...

  2. python 基础篇 04(列表 元组 常规操作)

    本节主要内容:1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range 一. 列表1.1 列表的介绍列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. ...

  3. python基础数据类型之列表,元组操作

    一.列表的索引和切片1.列表的索引列表和字符串一样样拥有索引 lst = ["a","b","c"] print(lst[0]) # 获取第 ...

  4. Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作

    一.字符串 特性:字符串本身不可修改,除非字符串变量重新赋值.Python3中所有字符串都是Unicode字符串,支持中文. >>> name  = "Jonathan&q ...

  5. python的对象类型-----列表&元组&字典

    列表: #定义列表 l=[1,'a',[3,4]] #l=list([1,'a',[3,4]]) #取值 print(l[0]) print(l[2][0]) l=[1,2,[['a','b'],'c ...

  6. Python基础语法之列表 元组

    1 列表 列表由一系列按照特定顺序的元素组成,其中的元素可以使不同的数据类型,用[ ]来表示列表,用逗号来分割列表中的元素. 1.1 列表操作之切片 a = [1, 2, 3, 4, 5, 6, 7, ...

  7. python基础===如何在列表,字典,集合中根据条件筛选数据

    #常见的操作如下: data = [1, 5, -3, -2, 6, 0, 9] res = [] for x in data: if x>=0: res.append(x) print(res ...

  8. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  9. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  10. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

随机推荐

  1. 滚动div至底部

    document.getElementById("chat").scrollTop=document.getElementById("chat").scroll ...

  2. 特征检测之HOG

    参考: http://blog.csdn.net/liulina603/article/details/8291093 http://blog.csdn.net/woxincd/article/det ...

  3. Structs框架

    一.准备工作及实例 1.解压struts-2.1.6-all.zip(structs网上下载) apps目录:struts2自带的例子程序 docs目录:官方文档. lib 目录:存放所有jar文件. ...

  4. 第01章(认识Java)

    /***************** ***认识java第一章 *******知识点: **************1.开发环境搭建 **************2.开发工具使用 ********** ...

  5. MIT 6.828 JOS学习笔记5. Exercise 1.3

    Lab 1 Exercise 3 设置一个断点在地址0x7c00处,这是boot sector被加载的位置.然后让程序继续运行直到这个断点.跟踪/boot/boot.S文件的每一条指令,同时使用boo ...

  6. 关于datatime 时间处理模块:

    import time        from datetime import datetime        from datetime import timedelta        aHour= ...

  7. [超级懒人最简单法]iPhone 6 plus 适配切图方法分享(转载文章)

    网络上已经有很多适配教程,可是看了半天总是半懂不懂..最后还是要综合多个教程再动动脑子动动手,最好有程序大哥帮你试一下(这得有多大的福气) 如果有跟我一样情况的: 1.       有人说用sketc ...

  8. 洛谷 P2725 邮票 Stamps Label:DP

    题目背景 给一组 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K —— 表示信封上能够贴 K 张邮票.计算从 1 到 M 的最大连续可贴出的邮资. 题目描述 例如,假设有 1 分和 3 ...

  9. ZooKeeper个人笔记之节点的监听

    create public String create(String path, byte[] data, List<ACL> acl, CreateMode createMode) th ...

  10. 随鼠标轮动翻动层————jquery小练习

    闲来无事在网站上看见一个网页制作的不错,就仿照做来看看.特此记录下来. 亮点:随鼠标上下滚动,展示页面随之不同,翻动效果. 功能点:鼠标向上,向下判断事件. css 代码 html { overflo ...