Link Search Menu Expand Document

python学习笔记

使用镜像安装包

安装包时国外服务器有时访问很慢,这里可以使用国内镜像

pip命令添加-i参数,后接镜像索引的url,例如:

https://pypi.tuna.tsinghua.edu.cn/simple gensim

全局变量关键字global

cnt = 0 # 计数器

def add_cnt():
  #函数内对全局变量操作时,显示声明这是一个全局变量
  global cnt
  cnt += 1
  
def show_cnt():
  global cnt
  print(cnt)

if __name__ == '__main__':
  show_cnt()
  add_cnt()
  show_cnt()

\#输出结果:
\# 0
\# 1

字符串前缀u,r,b,f

u,后面字符串以Unicode格式编码,常用于防止中文出现的乱码问题。

u'中文’

r,纯文本?去掉反斜杠机制,常用于正则表达式re

r"\n\n\n\n”

b,bytes数据类型,常用于网络编程种,浏览器、服务器的数据传输

response = b'<h1>Hello World!</h1>' 

f,表示字符串内支持大括号内的python表达式

f'a = {a}

类与对象

class Student():
    def __init__(self, id, name):
        # 初始化对象
        self.id = id
        self.name = name

    def __repr__(self):
        # 展示对象
        return 'id = '+str(self.id) + ', name = '+self.name

    def __call__(self):
        # 调用对象方法
        print('I can be called')
        print(f'my name is {self.name}')


stu = Student(1, 'asd')
print(callable(stu))  # 检查对象是否可调用
print(stu)  # 展示对象
stu()  # 调用对象

文件读取

路径

import os
# 不存在则创建文件夹
def mkdir(path):
    isexists = os.path.exists(path)
    if not isexists:
        os.mkdir(path)

在函数中创建函数

def shit(a):
    def good():
        return "good"

    def bad():
        return "bad"
    return good if a == 1 else bad()

s = shit(1)
print(s)  # <function shit.<locals>.good at 0x00000259CB292DC0>
print(s())  # good
print(shit(1)())  # good
print(shit(0))  # bad

for 循环后的 else 语句

若循环正常结束,而并没有遇到break停下,则会跳转到后面的else语句。

如以下寻找因数的例子,若没找到则是质数。

for i in range(2, 10):
    for j in range(2, i):
        if i % j == 0:
            print('{} = {} * {}'.format(i, j, i/j))
            # print(i, 'equals', j, '*', i/j)
            break
    else:
    	# loop fell through without finding a factor
        print('{} is a prime number! '.format(i))

# 2 is a prime number!
# 3 is a prime number!
# 4 = 2 * 2.0
# 4 equals 2 * 2.0
# 5 is a prime number!
# 6 = 2 * 3.0
# 6 equals 2 * 3.0
# 7 is a prime number!
# 8 = 2 * 4.0
# 8 equals 2 * 4.0
# 9 = 3 * 3.0
# 9 equals 3 * 3.0