1、 模块

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

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

 

a.模块1:sys

代码如下:

  1. import sys
  2. 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

代码如下:

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

2、数据类型:

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

布尔值:真或假  1或0

字符串

关于字符串的操作例子:

  1. name="zhaofan"
  2. print(name.capitalize()) #将字符串首字母大写
  3. print(name.count("a")) #查找字符串中a的个数
  4. print(name.center(50,"-")) #显示结果如下:
  5. ---------------------zhaofan----------------------
  6. print(name.endswith("an")) #判断字符串的结尾是否为an
  7. print("My name is zhaofan".find("name")) #返回字符串的索引
  8. print(name.isalnum()) #如果字符串中包括文字和数字的都返回true
  9. print("zhaofan".isalpha()) #如果字符串中都为字母则返回true
  10. print("".isdigit()) #判断字符串中是否都为数字
  11. print("ZZZZ".islower()) #判断字符串是否为小写
  12. name.strip() 去掉前和后面的空格
  13. name.lstrip()去掉左边的空格
  14. name.rstrip()去掉右边的空格
  15. name.replace() 替换
  16. name.rfind(“字符”) 查找字符串中最右边的那个字符的下标
  17. 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()  就是浅拷贝

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

  1. names = ["ZhaFan","Dean",[1,2,3,4],"Dean","Dan","jack","Yes","A","a"]
  2. names2 = names.copy()
  3. print(names)
  4. print(names2)
  5. names2[1]="zhaofan"
  6. print(names)
  7. print(names2)
  8.  
  9. names[2][0]=100
  10. print(names)
  11. 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

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

代码例子如下:

  1. import copy
  2. names = ["ZhaFan","Dean",[1,2,3,4],"Dean","Dan","jack","Yes","A","a"]
  3. names2 = copy.deepcopy(names)
  4. print(names)
  5. print(names2)
  6. names[2][1]=10000
  7. print(names)
  8. 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()等这些修改的方法

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

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

运行结果如下:

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

1

2

jack

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

程序要求:

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

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

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

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

  1. goods_list=[["Iphone",5288],["Bike",1200],["Coffee",20],["Ipad",1800]]
  2. shopping_list=[]
  3. user_salary = input("请输入你的工资是:")
  4. if user_salary.isdigit() is True:
  5. user_salary = int(user_salary)
  6. while True:
  7. for key,iterm in enumerate(goods_list):
  8. print(key,iterm[0],iterm[1])
  9. user_choice = input("你想要买什么(输入商品的序号,q表示退出系统):")
  10. if user_choice.isdigit() is True:
  11. user_choice=int(user_choice)
  12. if user_choice > len(goods_list):
  13. print("\033[31;1m你输入的商品编号不存在\033[0m")
  14. continue
  15. if goods_list[user_choice][1] < user_salary and user_choice > 0:
  16. shopping_list.append(goods_list[user_choice])
  17. user_salary -= goods_list[user_choice][1]
  18. print("\033[31;1m%s\033[0m 已经被添加到购物车,你的钱还剩余\033[31;1m%s\033[0m" %(goods_list[user_choice][0],user_salary))
  19. continue
  20. else:
  21. print("\033[31;1m你没有足够的钱了,你只剩下%s人民币了\033[0m" %user_salary)
  22.  
  23. if user_choice == "q":
  24. print("你的购物车".center(50,"-"))
  25. for key,iterm in enumerate(shopping_list):
  26. print(key,iterm[0],iterm[1])
  27. print("你还剩余\033[31;1m%s\033[0m人民币" %user_salary)
  28. break
  29. else:
  30. print("请输入正确的工资")

8、关于字典dict

字典有如下特点:

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

2)    无序的

3)    查询速度快

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

  1. info = {'name':'Dean',
  2. 'job':'IT',
  3. 'age':23,
  4. 'company':'XDHT'
  5. }
  6. print(info)

运行结果如下:

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

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

 

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

字典的增删查改

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

代码例子如下:

  1. info = {'name':'Dean',
  2. 'job':'IT',
  3. 'age':23,
  4. 'company':'XDHT'
  5. }
  6. print(info)
  7. 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、关于字典的嵌套,代码例子如下:

  1. menu_dict={
  2. "河南省":{
  3. "焦作市":{
  4. "修武县":{"AA","BB","CC"},
  5. "武陟县":{"DD","EE","FF"},
  6. "博爱县":{"GG","HH","II"}
  7. },
  8. "新乡市":{
  9. "辉县":{"AA","BB","CC"},
  10. "封丘县":{"DD","EE","FF"},
  11. "延津县":{"GG","HH","II"}
  12. }
  13. },
  14. "河北省":{
  15. "邢台":{
  16. "宁晋县":{"AA","BB","CC"},
  17. "内丘县":{"DD","EE","FF"},
  18. "邢台县":{"GG","HH","II"}
  19. },
  20. "唐山":{
  21. "乐亭县":{"AA","BB","CC"},
  22. "唐海县":{"DD","EE","FF"},
  23. "玉田县":{"GG","HH","II"}
  24. }
  25. }
  26. }

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. Mac安装软件报“打不开。。。,因为它来自身份不明的开发者”的解决办法

    问题描述 在Mac上安装git,双击pkg进行安装,报如下图错误: 解决办法 不要双击pkg文件,改成选中文件之后,鼠标右键,选择“打开方式->安装器(默认)”,即可继续安装.

  2. [leetcode] 题型整理之查找

    1. 普通的二分法查找查找等于target的数字 2. 还可以查找小于target的数字中最小的数字和大于target的数字中最大的数字 由于新的查找结果总是比旧的查找结果更接近于target,因此只 ...

  3. 解决webstorm卡顿问题

    webstorm强大的功能就不多做介绍了.但是它的缺点也显而易见:吃内存. 电脑配置稍低一点,运行webstorm就特别容易卡顿,特别是项目比较大的时候,那卡顿得不要不要的. 在我的笔记本8g内存 2 ...

  4. python操作日期和时间的方法

    不管何时何地,只要我们编程时遇到了跟时间有关的问题,都要想到 datetime 和 time 标准库模块,今天我们就用它内部的方法,详解python操作日期和时间的方法.1.将字符串的时间转换为时间戳 ...

  5. Leetcode First Missing Positive

    Given an unsorted integer array, find the first missing positive integer. For example,Given [1,2,0]  ...

  6. <六>JDBC_DAO 设计模式

    JDBC_DAO设计模式 DAO:Data Access Object(数据访问对象)  why:实现功能的模块化,更有利于代码的维护和升级.  what:访问数据信息的类,包含了对数据的CRUD(c ...

  7. 使用R语言-RStudio快捷键

    控制台 功能 Windows & Linux Mac 移动鼠标到控制台 Ctrl+2 Ctrl+2 控制台清屏 Ctrl+L Command+L 移动鼠标至第一行 Home Command+L ...

  8. AD Local Domain groups, Global groups and Universal groups

    http://ss64.com/nt/syntax-groups.html Rules that govern when a group can be added to another group ( ...

  9. Eclipse下使用GDT插件无法登陆GAE & GDT无法上传JAVA代码

    今天更新github主页的过程中,想使用GAE部署一个Java Web服务来更好的支持网站动态性(关键是利用了免费的GAE资源),结果遇到了2个大问题. 1.GDT插件无法登陆GAE账户 错误1:登陆 ...

  10. Socket--Java

    Server.java package socket; import java.io.BufferedReader; import java.io.DataInputStream; import ja ...