python之路第二天

一 .Python引入模块

1、模块是导入别人已经写好的python文件,里面已经有一些写好的功能,可以直接拿来使用使用import 关键字导入需要的模块,导入模块时,默认会在当前目录下去寻找该文件,如果当前目录下没有的话,回去python的环境变量中找,如果找不到就报错2、sys.argv 获取传入的参数,第一个参数是文件名  sys.path 打印环境变量  os模块是和操作系统相关的命令  os.system(‘ls‘)  执行操作系统命令,返回的是一个执行结果,成功或者失败,成功返回0  os.popen(‘ls‘)  这个也是执行操作系统的命令,和system区别就是,这个命令返回的是执行结果,也就是返回了什么东西,  而不是返回的执行成功或者失败  读取内容需用read方法  os.popen(‘ls‘).read()  os.mkdir()  创建文件夹  os.path.sep  路径分隔符,根据不同的操作系统,分割符会变化

二.列表和元组的操作

列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作

定义列表

1 names=["zhangsan","lisi",[1,2],"wangermazi","houyafan"]

可以通过列表角标的方式去获得list中的值

 1 print(names[0]) # 获取names中0角标元素的值
 2 print(names[1:3])# 顾头不顾尾  再切皮中开头包含 结尾不包含"niuhanyang","zouyi"
 3 print(names[-1]) # 倒叙的取值 -1取最后一个
 4 print(names[-2:]) # 取最后两位  可以省略不写
 5 print(names[:3]) # 取前面到某个位置  可以省略不写
 6 print(names[::2]) # 每隔一个切一回  可以省略0 -1 从头切到尾
 7 names.append("cc")# 追加
 8 names.insert(1,"hyf") # 插入 在列表元素的1前面插入hyf
 9 names[1]="yuanyuan" # 更改names 1角标的值
10 # delete
11 names.remove("yuanyuan") # 直接删除园园 这个在list中对应的值
12 del names[1] # 删除角标对应字段
13 names.pop()# 默认删除last 最后一位
14 names.pop(1) # 按角标位删除
15
16 print(names.index("houyafan")) # 在列表中找到这个人对应的角标位
17 print(names.count("houyafan"))# 列表中有几个houyafan
18 names.clear() # 清空列表
19 names.reverse() # 列表反转
20 names.sort() # 排序 特殊符号-->数字-->大写字母-->小写字母
21 name1=[1,2,3,4]
22 del name1 # 删除变量

介绍个特殊的方法extend()

看下小练习

num=[1,2]

num1=[3,4]

num.extend(num1)

print(num) # 打印结果为[1, 2, 3, 4]

可以看出来 这个方法的作用是将list num1扩展到num中

在介绍下深浅copy

浅copy

浅copy只会拷贝一层,不会对深层次拷贝

如果在list中含有小list copy的是他的内存地址 所以更改小list中的值会变

看下下面的练习

name1=["a","b","c",[1,2]]

name2=name1.copy()

name1[-1][1]=1000

print(name1,name2)

通过上面的知识点我们可以知道  打印的name1 和 name2都会变为1000 因为list中含有小list 复制的是他的地址,所以只要改了一个地方 只要是指向他的都会变为1000

3.元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

它只有2个方法,一个是count,一个是index,完毕。

# 格式
name=(1,2,3,3)

name.count(3) # 获取这个元组中3的个数

name.index(1) # 获取1这个元素在元组的位置

4.字符串操作方法

name=‘houyafan‘

name.capitalize() # 字符串的首字母大写

name.count(‘a‘) # a在字符串中出现的次数

name.center(50,‘-‘)#  一共打印50个字符  不够的用-填

name.endswith(‘an‘) # 判断是否以an结尾  返回真 假

name.startswith(‘ho‘) # 判断是否以ho开始 返回 真 假

name.find(‘a‘) # 所在字符串的位置 如果存在多个相同的,从左开始第一个

name.format_map({}) # 传字典 没啥卵用

name.isalnum() # 包含数或字母任意一个就返回真 否则返回假

name.isalpha() # 只要全部是纯英文字符 则返回真 否则返回假

name.isdecimal()  # 判断是否是10进制的数

name.isdigit()  # 判断是否是整数

‘variable‘.isidentifier() # 判断是否是一个合法的变量是返回真 否则返回假

name.islower() # 是否是小写字符 是返回真 否则返回假

name.isnumeric() # 是否只是数字组成的==isdigit 没什么卵用

name.isspace() # 是否是一个空格 是则返回真 否则返回假 

name.istitle() # 所有单词的首字母大写

name.isupper() # 判断是否英文全部大写 是则返回真 否则返回假

‘+‘.join([‘1‘,‘2‘,‘3‘]) # 将字符拼接成字符串中间可以加上任何东西 输出结果 1+2+3

name.ljust(50,‘*‘) # 输出时 不够50 在末尾加*

name.rjust(50,‘*‘))# 输出时 不够50 在前面加*

name.lower() # 大写变小写

name.upper())# 小写变大写

name.lstrip() # 默认从左面去掉空格或回车

name.rstrip())# 默认不写 从右面去掉空格或回车

name.strip() # 去掉回车或空格

name.replace(‘1‘,‘h‘,count=1) # 1替换h  count=1 代表左向右数第一个

name.rfind(‘o‘) # 从左到右 找到最右边的o 的角标位置

name.split(‘ ‘) # 字符串按照空格生成列表

‘1+2+3‘.splitlines() # 自动识别换行

name.swapcase() # 英文字母中大写就转小写 有小写就转大写

name.zfill(50)) # 50个字符 不够用零填写

上面是所有字符串的操作方法

介绍个很高大上的东西,如果在写程序时想加密自己的字符串可以通过下面的方法:

# 加密对照表 设置加密对照表

p=str.maketrans(‘abcdef‘,‘123456‘)

 # 字符串引用加密

print(‘houyf‘.translate(p)) 

# 同时加密了 我们也需要解密 反向设置对照表就可以实现解密了

z=str.maketrans(‘123456‘,‘abcdef‘)# 反解加密

# 字符串加密反解

print(‘houyf‘.translate(z)) 

5.字典

字典是无序的 没有下标 通过key去查找
dict[‘1‘]=‘houyafan‘ # 修改

dict[‘4‘]=‘yuanyuan‘ # 没有这个key 就新建

del dict[‘1‘] # 删除这个key和value

dict.pop(‘2‘) # 指定删除 key 是‘2‘的1对字典

dict.popitem()# 随机删除 没什么卵用

dict.get(‘1‘) # 安全的获取value 有就返回没有 就None

print(‘1‘ in  dict)# key‘1‘ 是否在这个字典中

dict.values() #打印所有的values

dict.keys() # 打印所有的key

dict.setdefault(‘4‘,‘yuanyuan‘) # 如果值存在就不动 不在就创建

dict.items() # 字典转换成一个大list

dict.update(dict1)# 合并字典,如果存在就更新,不存的key不存在就添加进去

new_dict=dict.fromkeys([1,2,3],‘aaa‘) #初始化一个字典 并给他赋值key分别是123 值都是aaa 

字典的循环

for i in dict:
    print(i,dict[i])# 循环他的key i  对应的dict[i]对应的value

6.三元运算符

a = 1

b = 2

c = 3

d = a if a>b else c

# d的值等于  如果 a大于b 则将a赋值给d 否则 c赋值给d

第二天的python就这样了,留个作业

实现商家和客户的商店接口,商家可以增加、删除、修改商品,同时同步到客户中,客户可以购买商品,第一次客户登陆提示输入存款,购买成功退出后,打印购买商品,同时记录余额。第二次进来直接展示余额。要求判断各种异常情况。

时间: 2025-01-19 23:21:44

python之路第二天的相关文章

七日Python之路--第二天

由于之前使用过一段Ubuntu,所以基本命令啥的都还可以.装差利器Vim也是使用过一段时间的. Ubuntu快速打开终端Alt+Ctrl+T,这样才显得犀利一些嘛.说实话,终端编辑文件啥的,确实比Win下面爽的多,毕竟Win主打图形化的嘛.感觉废话有点多. 今天本想继续研究枯燥的官方文档,但昨夜偶然发现网易云课堂,如此犀利的资源怎能浪费. 零基础入门学习Python 讲师:小甲鱼 发布者:鱼C工作室 ,这个视频还是个人还是比较喜欢的,之前在youku上看到过几段,但是不全.http://stud

Python之路第二天-----学习笔记

变量名要点: 1.变量名只能包含字母. 数字和下划线. 变量名可以字母或下划线打头, 但不能以数字打头, 例如, 可将变量命名为message_1, 但不能将其命名为1_message. 2.变量名不能包含空格, 但可使用下划线来分隔其中的单词. 3.不要将Python关键字和函数名用作变量名, 即不要使用Python保留用于特殊用途的单词, 如print  . 4.变量名应既简短又具有描述性. 例如, name比n好, student_name比s_n好, name_length比length

python之路第二篇

python语言介绍 编译型和解释型 静态语言和动态语言 强类型定义语言和弱类型语言 python数据类型介绍 python数据类型分:数字.布尔型.字符串.列表.元组.字典 1.整数 例如:1,2,33,44等 整数的功能如下: 1 class int(object): 2 """ 3 int(x=0) -> int or long 4 int(x, base=10) -> int or long 5 6 Convert a number or string t

python之路——第二块(装饰器、生成器、迭代器)

装饰器 def deco(count): def func(num): if num < 10: count(num) else: exit() return func @deco def count(num): a = 0 for i in range(num): a += i print(a) count(11) 注:deco(count)和下面的count(num)中的count只是一个形参,count可以用任何变量名替换,但是num是一定要有,因此传入的实参是被装饰函数,被装饰函数有nu

Python之路(第二十篇) subprocess模块

一.subprocess模块 subprocess英文意思:子进程 那什么是进程呢? (一)关于进程的相关理论基础知识 进程是对正在运行程序的一个抽象,进程的概念起源于操作系统,是操作系统最核心的概念,操作系统的其他所有内容都是围绕进程的概念展开的. 所以想要真正了解进程,必须事先了解操作系统. 程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以

Python之路(第二十六篇) 面向对象进阶:内置方法

一.__getattribute__ object.__getattribute__(self, name) 无条件被调用,通过实例访问属性.如果class中定义了__getattr__(),则__getattr__()不会被调用(除非显示调用或引发AttributeError异常) class Foo: ? def __init__(self,x): self.x = x ? def __getattr__(self, item): print("执行__getattr__") ?

python之路第二天 随便记记 今天主要很郁闷

为何要有操作系统 为了让程序员更轻松的完成命令电脑工作而存在的,控制硬件,服务于软件. 操作系统的位置 操作系统位于软件和硬件之间.操作系统由内核(运行于内核态,控制硬件)和系统调用(运行于用户态,为软件提供一个调用接口)组成 **操作系统的功能 1.为应用程序提供如何使用硬件资源的抽象 2.使硬件和软件的应用变的有序化 **多道技术 多道指的是多道程序 空间上复用:内存可以存在多个文件,内存必须实现物理级别隔离,特点(安全性,稳定性) 时间上的复用:CPU可以切换(一个软件占用CPU时间过长,

python之路———第二章:函数

---恢复内容开始--- 一.初识函数 一.定义函数 def  f1(): #定义函数 asdf 1.def #关键字,创建函数 2.f1 #函数名 3.() 4.asdf... #函数体(执行的代码) 5.返回值 f1() #执行函数 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算,如:发送邮件等... 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据. 二.参数 1.普通参数:严格按照

Python之路(第二十七篇) 面向对象进阶:内置方法、描述符

一.__call__ 对象后面加括号,触发执行类下面的__call__方法. 创建对象时,对象 = 类名() :而对于 __call__ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()() class Foo: ? def __call__(self, *args, **kwargs): print("我执行啦") ? f = Foo() f() #对象加括号调用执行类下的__call__方法 #输出结果 我执行啦 二.__next__和__iter__实现迭代器协议 迭