python之路-基础篇4

模块

模块分两种

1、标准模块(库)

    直接导入就可以使用

2、第三方模块(库)

    必须下载安装才可以使用

模块又可以叫做库

初始两个标准模块:

1、sys模块

例子:

import sys #导入sys模块
print (sys.path)

结果:
['C://Users//kk//Documents//python', 'C://python35.zip', 'C://DLLs', 'C://lib', 'C://Users//kk//Documents//python']

注:自己定义模块不能跟导入库名相同

2、os模块

例子:

import os
os.system("dir")#执行命令,不保存结果

cmd_r = os.popen("dir").read()
print("-->",cmd_r)

创建一个目录
os.mkdir("new_dir")

3、自己定义模块

#导入自己创建的Login模块

当前路径创建Login模块;注:也可以把该Login.py放在python路径下的site-packages目录下,就可以直接在别的文件下导入该模块

#判断登录 Login.py
import getpass  #引用getpass这个模块

_username = "kk"
_password = "123456"

username = input("username:")
password = getpass.getpass("password") #getpass功能是让密码不直接显示成明文

if _username == username and _password == password:
#	print("Welcome user {name} login...".format(name = username))
	print("Welcome user %s login..." % username)
else:
	print("error")
print(username,password)

当前路径创建learn01.py

#导入自己创建的Login模块
import Login

运行

C:/Users/kk/Documents/python>python learn01.py
username:kk
password
Welcome user kk login...
kk 123456

4、pyc是个什么东西?

编译器语言,典型例子C语言

解释器语言,现行例子Ruby、python

java是先编译后解释的语言

其实python和java、C#一样,也时一门基于虚拟机的语言,

当我们在命令行输入python hello.py时,其实是激活了Python的“解释器”,

告诉“解释器”,你要开始工作了。

python是一门先编译后解释的语言。

当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,

当Python程序运行结束时,Python编译器则将PyCodeObject写会到pyc文件中。

当python程序第二次运行时,先去硬盘找Pyc文件,如果找到直接载入,否则重复上面的过程。

所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

5、Python数据类型

a、数字

int(整型)

long(长整型)

float(浮点型)

complex(复数)

注:type()查看数据类型

b、布尔值

真或假

1或0

c、字符串

“Hello,World”

6、数据运算

运算符

比较运算

赋值运算

逻辑运算

成员运算

身份运算

位运算

计算机中能表示的最小单位,是一个二进制位

计算机中能存储的最小单位,是一个二进制位(bit)

8bit = byte(字节)

跟Alex学Python之Python开发基础-1

7、bytes数据类型

三元运算

8、列表的使用

a列表、元组操作

例子:

names = ["zhangyang","guyun","xiangpeng","xuliangchen"]
print(names[0])
print(names[1:3])#切片

python learn01.py
zhangyang
['guyun', 'xiangpeng']

names.pop("guyun")#如没有输入参数值,就默认删除列表最后一个值
names.append("kk")#列表最后加入一个值
names.insert(1,"kkk")#列表中间插入
names[2] = "kkkk"#修改列表中值
names.remove("kkkk")#删除对应

del names[1]#另外一个删除方法
names.count("kk")#可添加重复值

names2 = names.copy()#复制

例子2:

import copy

#浅拷贝
a = [11,22,["kk","qq"],33]
b = copy.copy(a)#拷贝一层
print(a)
print(b)
a[1] = 100
a[2][0] = "kaixin"
print(a)
print(b)

#深拷贝-不可轻易使用
a = [11,22,["kk","qq"],33]
b = copy.deepcopy(a)#完全克隆
print(a)
print(b)
a[1] = 100
a[2][0] = "kaixin"
print(a)
print(b)

结果:
[11, 22, ['kk', 'qq'], 33]
[11, 22, ['kk', 'qq'], 33]
[11, 100, ['kaixin', 'qq'], 33]
[11, 22, ['kaixin', 'qq'], 33]

[11, 22, ['kk', 'qq'], 33]
[11, 22, ['kk', 'qq'], 33]
[11, 100, ['kaixin', 'qq'], 33]
[11, 22, ['kk', 'qq'], 33]



a = [11,22,["kk","qq"],33,44,55]
print(a[0:-1:2])

for i in a:
	print(i)

#浅拷贝第二种
#c = a[:]

#浅拷贝第三种
#d = list(a)

#注:浅拷贝就是相当于引用


#浅拷贝的用处
person = ["name",["saving",100]] #表示姓名+存款

p1 = person[:]
p2 = list(person)

p1[0] = "kk" #p1表示为kk这个人的列表,他们俩为夫妻关系
p2[0] = "qq" #p2表示为qq这个人的列表,他们俩为夫妻关系

#p1和p2夫妻有共有财产100
#如果p1花了50块钱,那p2那里同样会减少50
p1[1][1] = 50

print(p1)
print(p2)


#元组
#names = ("a","b",11)
#print(names[0])

9、购物车程序

#程序:购物车程序

project_list = [  #定义商品列表
	('Iphone',5800),
	('Mac Pro',9800),
	('Bike',800),
	('Watch',10600),
	('Coffee',31),
	('Alex Python',120),
]

shopping_list = []  #定义购物车已购商品空列表

salary = input("请输入您的工资金额:") #输入总金额
if salary.isdigit():#判断输入的金额是不是数字
	salary = int(salary)#是数字的话转换成整数型
	while True:
#		for item in project_list:遍历商品列表
#			print(project_list.index(item),item)
		for index,item in enumerate(project_list):#遍历商品列表
			print(index,item)#打印编号和对应商品
		user_choice = input("选择要购买的商品编号>>>:")#输入商品编号
		if user_choice.isdigit():#判断输入的编号是不是数字
			user_choice = int(user_choice)#如果是数字转换为整数型
			if user_choice < len(project_list) and user_choice >= 0:#判断编号是不是小于商品标号总数并且大于0
				p_item = project_list[user_choice]#获取商品价格
				if p_item[1] <= salary:  #买得起
					shopping_list.append(p_item)#把商品添加到购物车列表
					#salary -= p_item[1]#计算剩余工资
					salary = salary - p_item[1]#计算剩余工资
					print("购买 %s 该商品后剩余金额为[%s元]。" % (p_item,salary))#购买商品后剩余金额
				else:
					print("您的余额只剩[%s]了,无法购买了!" %salary ) #金额不足给提示
			else:
				print("您输入的商品标号[%s]不存在。" % user_choice)	#输入的商品编号不存在给提示		
		elif user_choice == 'q': #输入q后退出循环
			print('--------exit--------')
			for p in shopping_list:#退出后打印购物车商品列表
				print(p)
			print("您的余额还剩[%s元]。" % salary)#显示剩余金额
			exit()#退出方法
		else:
			print("Invalid Option")

#衍生出一下内容:
#加颜色
#/033[31; 1m %s /033[0m   #%s就是要变色的内容,31指的是红色


#注:index()方法如果包含子字符串返回开始的索引值,否则抛出异常。
'''
a = ["a","b","c"]

for i in a:
	print(a.index(i),i)

>>> 0 a
    1 b
    2 c
'''


#注释:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
#seasons = ['Spring', 'Summer', 'Fall', 'Winter']
#print(list(enumerate(seasons)))
#>>>[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]


#注:Python isdigit() 方法检测字符串是否只由数字组成。
#如果字符串只包含数字则返回 True 否则返回 False。
#例如:
#str = "123456";  # Only digit in this string
#print str.isdigit();
#>>>True	

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/191582.html

(0)
上一篇 2021年11月14日
下一篇 2021年11月14日

相关推荐

发表回复

登录后才能评论