Python学习(内部函数、常用库、实战)

一、内部函数

 

1、Chr()/ord()

 

控制台进入python
chr()  数字转字母
ord(“”)  字母转数字

 

 

 

实战(生成随机字符串)

 

list1=[ ]
for item in range(10):            

 

r=random.randrange(9,99)       
    list1.append(chr(r))           
print(''.join(list1))   

 

 

2、Isinstance 判断对象类型  

 

a1=[1,2,3,4]
if isinstance(a1,list):
    print('a1是list')
else:
    print('a不是list')

 

 

 

 二、常用库

 

1、OS实战

 

A:ping网络(以百度为例)

 

os.system('ping www.baidu.com')

 

B:创建文件夹

 

os.mkdir('admin',mode=777)

 

C:获取当前路径(两种方法)

 

print(os.getcwd())
print(os.path.dirname(__file__))

 

D:查看目录下所有的文件

 

for item in os.listdir((os.getcwd())):
    print(item)

 

E:获取当前操作系统

 

print(os.name)

 

F:返回绝对路径

 

print(os.path.abspath('C:/Users'))

 

G:针对文件目录进行分割

 

print(os.path.split('C:/Users'))

 

H:判断目录是否存在

 

print(os.path.exists(('C:/Users')))

 

I:判断是否是文件

 

print(os.path.isfile(('123')))

 

J:文件存储的时间

 

print(os.path.getatime('C:/Users'))                     
print(time.localtime(os.path.getatime('C:/Users')))     

 

K:文件修改的时间

 

print(os.path.getmtime('C:/Users'))                    
print(time.localtime(os.path.getmtime('C:/Users')))

 

L:os实战
print(os.path.dirname(__file__))
print(os.path.dirname(os.path.dirname(__file__)))
#路径拼接(在当前包获取同级包中的文件目录  例如:获取aaa包下log.txt的文件路径)
base_dir=os.path.dirname(os.path.dirname(__file__))
print(os.path.join(base_dir,'aaa','log.txt'))

with open(os.path.join(base_dir,'aaa','log.txt'),'r',encoding='utf-8') as f:
    print(f.read())

 

 

 

2、sys提供对解释器使⽤或维护的⼀些变量以及与解释器强烈交互的函数的访问

 

A:查找解释器的搜索路径

 

for item in sys.path:
     print(item)

 

B:获取操作系统平台名称

 

 print(sys.platform)

 

C:获取python解释器的版本信息

 

print(sys.version)

 

D:实战

 

思路:当需要的导入的文件始终找不到路径的时候,就需要把该文件的包路径添加到path中

 

需求:例如需要导入ccc包下的ttt文件到该模块中,却始终报错(操作姿势都正确),提示找不到路径NotFoundError

 

 

 

 base_dir=os.path.dirname(os.path.dirname(__file__))

 

sys.path.append(os.path.join(base_dir,'ccc'))

 

from ttt import *

 

 print(name)

 

func()

 

 

 

3、异常逻辑的处理

 

try:
   pass
expect:
   pass
try里面的代码执行正确的情况下,expect的代码不会执行
try里面的代码执行错误,except就来获取错误信息,不要让程序出错
Exception:能够处理所有的异常信息
BaseException:所有异常的祖先

 

 

 

def div(a,b):
    try:
        print(a/b)
    except IndexError as e:
        print('索引异常')
    except ZeroDivisionError as e:
        print('分母不能为0')
#获取异常信息  Exception:能够处理所有异常信息
    except Exception as e:
        print(e.args[0])      

 

else:
        print('输出信息')
    finally:
        print('输出信息')
div(x,x)  

 

div(1,0)   

 

         

 

div(1,1)

 

 

 

 三、实战

 

需求:

 

1、注册

 

2、登录

 

3、显示登录成功后的信息

 

import json
#由于多次用到相同函数,那么就需要进行分离,例如username和password
def out():
    username=input('请输入账号:\n')
    password=input('请输入密码:\n')
    return username,password

 

def register():
    username,password=out()
    temp=username+'|'+password
    json.dump(temp,open('user.md','w'))

def login():
    username, password = out()
    lists=str(json.load(open('user.md','r'))).split('|')
    if username==lists[0] and password==lists[1]:
        return True
    else:
        return False

def profile():
    lists = str(json.load(open('user.md', 'r'))).split('|')
    if login():                                                    
        print('{nick}登陆成功'.format(nick=lists[0]))
    else:
        print('账户或者密码错误')

def main():
    while True:
        try:
            f=int(input('1、注册 2、个人主页 3、退出\n'))
            if f==1:
                register()
            elif f==2:
                profile()
            elif f==3:
                break
        except:
            continue
main()
分析:手动输入账号和密码,写入到user.md文件中,当我们访问个人主页的时候需要核对信息,函数内部会进行调用user.md中的数据,如果输入一致,那么显示“xxx(输入的username)登陆成功“,如果登陆前后不一致,那么提示“账户或者密码错误”并继续执行,重新输入,最后输入3跳出循环,退出。

 

登陆成功示例

 

 

 

登陆失败示例(前后输入不一致,不会停止,可继续重新输入)

 

#主函数,程序执行的入口
if __name__ == '__main__':
    main()

 

posted @ 2022-09-08 19:57  陌上归程  阅读(55)  评论(0编辑  收藏  举报