python设置国内镜像
安装方式
pip install xxx -i https://opsx.alibaba.com/mirror/
设置方式
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
国内镜像站点
华为镜像源 https://mirrors.huaweicloud.com/
阿里云 http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
浙江大学开源镜像站 http://mirrors.zju.edu.cn/
腾讯开源镜像站 http://mirrors.cloud.tencent.com/pypi/simple
豆瓣 http://pypi.douban.com/simple/
网易开源镜像站 http://mirrors.163.com/
搜狐开源镜像 http://mirrors.sohu.com/
python介绍
数据类型
- python中常见的数据类型:字符串、数字、浮点数
print("字符串") # 字符串类型
print(666) # 数字类型
print(type("字符串")) # str
# 类型转换
num_number = int("123")
print(num_number) # 数字类型
num_float = float("123.12")
print(num_float) # 浮点数类型
str_str = str(123)
print(str_str)
字符串定义方式
- 字符串定义方式有四种
- 单引号
- 双引号
- 三个单引号
- 三个双引号
# 字符串定义方式
name = "名字"
name = "名字"
name = """名字"""
name = """名字"""
格式化字符串
# 格式化字符串
nameStr = f"{name}是名字,{num_float}数字;类型"
print(nameStr)
输入语句
# 输出语句
print(input("告诉我\n"))
# 输入语句
ipt = input("告诉我\n")
注释方式
- 注释方式有多种,常见的是
#
# 注释
"""
注释
"""
'''
注释
'''
判断和循环
判断条件
简介
if 条件:
pass
elif 条件:
pass
else:
pass
实例
print(f"1>5={1>5}") # False
# Boolean值
flag = False
print(flag)
# 条件判断
print(1 == 1)
# if语句
print("---------------if语句---------------")
if 1 < 2:
print("是的")
print("1<2")
print("---------------结束---------------")
# 判断案例
print("---------------判断案例---------------")
age = input("请输入你的年龄")
if int(age) > 10:
print("需要买票")
else:
print("不需要买票")
print("---------------判断案例---------------")
循环条件
for循环
简介
for 循环的变量名 in 需要循环的内容:
循环体
实例
name = "python设置国内镜像"
for x in name:
print(x, end="")
pass
print("---------------------有多少个1-----------------")
name = "http://123.56.84.50:1616/"
count = 0
for x in name:
if x == "1":
count += 1
pass
pass
print(f"这个字符串共有{count}个1")
while循环
简介
while 条件:
循环体
pass
实例
import random
num = random.randint(1, 100)
flag = True
count = 0
while flag:
count += 1
guessNum = int(input("输入你想的数字:"))
if guessNum == num:
print(f"猜中了,猜了{count}次")
flag = False
pass
elif guessNum < num:
print("猜小了")
pass
elif guessNum > num:
print("猜大了")
pass
函数的基础使用
def 函数名(参数1,参数2):
函数体
return 返回值
实例
str1 = "123456789123456789"
str2 = "112233445566778899"
str3 = "11122233444555666"
def countLen(string, num):
count = 0
for x in str(string):
if x == str(num):
count += 1
pass
pass
print(f"一共有{count}个{num}")
return f"一共有{count}个{num}"
pass
print(countLen(str1, 1))
countLen(str2, 1)
countLen(str3, 1)
# 主动返回none
def sayHello():
return None
print(sayHello())
列表定义
nameList = ["uuu", "iii", "ppp"]
print(nameList) # 输出列表内容
# index方法
print(nameList.index("uuu"))
# 修改元素
nameList[0] = 666
print(nameList)
# 插入元素
nameList.insert(1, "新插入的")
print(nameList)
# 追加元素---单个
nameList.append("追加元素")
print(nameList)
# 追加元素---整个
nameList.extend([[1, 2, 3, 4]])
print(nameList)
# 删除元素
del nameList[1]
print(nameList)
# pop删除
element = nameList.pop(2) # 取出元素
print(f"输出删除元素{element},新的数组为:{nameList}")
# remove删除---默认删除找到第一个
myList = [1, 1, 2, 2, 4, 5, 5, 6, 8, 9]
myList.remove(1)
print(myList)
# 清空列表
myList.clear()
print(myList)
# 统计元素的数量
myList = [1, 1, 2, 2, 4, 5, 5, 6, 8, 9]
print(myList.count(1))
# 列表的数量有多少
print(len(myList))
序列的操作
mylIST = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从1开始,4结束 步长为1
result1 = mylIST[1:4]
print(result1) # [2, 3, 4]
# 从头开始,到最后结束,不长为1
result2 = mylIST[:]
print(result2) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从头开始到最后结束,步长为2
result3 = mylIST[::2]
print(result3)
# 从头开始到最后结束,步长为-1
result4 = mylIST[::-1]
print(result4)
# 从3开始,到1结束,步长为-1
result5 = mylIST[3:1:-1]
print(result5)
# 对元组进行切片;从头开始到最后结束,步长为-2
myTuple = (1, 2, 3, 4, 5, 6, 7, 8, 9)
result6 = myTuple[::-2]
print(result6)
# 反转数组
myList = [9, 7, 5, 3, 1]
print(myList[::-1])
# 替换字符
myStr = "我是某某某"
myStr.replace("某某某", "") # 需要重新赋值
newStr = myStr.replace("某某某", "")
print(myStr)
print(newStr)
集合定义
- 集合是不可以重复的,如果定义的集合有重复,那么在输出的时候会自动去重
- 如果想定义一个空集合可以使用
set()
- 集合是无序的,所以集合不支持下标索引访问
- 但是集合和列表一样,是允许被修改的
myEmpty1 = {} # 这个是字典
myEmpty2 = set() # set()
myEmpty3 = {1, 1, 2, 3, 4, 5, 6, 1, 2, 3} # {1, 2, 3, 4, 5, 6}
print(myEmpty1, myEmpty2, myEmpty3)
# 集合添加元素
mySet = set()
mySet.add(1)
print(mySet)
# 移出元素
mySet.remove(1)
print(mySet)
# 随机取出元素
mySet = {1, 1, 2, 3, 4, 5, 6, 1, 2, 3}
print(mySet.pop())
# 清空集合
mySet.clear()
print(mySet)
# 取出集合的差集
Set1 = {1, 2}
Set2 = {1, 2, 3, 4, 5, 5, 6, 1, 2, 3}
print(Set2.difference(Set1))
# 消除差集
print(Set1.difference_update(Set2))
# 合并集合
print(Set1.union(Set2))
# 合并集合元素数量
Set2 = {1, 2, 3, 4, 5, 5, 6, 1, 2, 3}
print(f"集合2的数量有{len(Set2)}")
# 集合的遍历
for x in Set2:
print(x, end=",")
pass
字典定义
- 支持下标索引的:列表元组,字符串
- 不支持重复元素
- 支持}:列表、元素、字符串
- 不支持:集合、字典
- 是否可以被修改:
- 支持:列表集合、字典
- 不支持:元组、字符串
dict1 = {
"confirm": 0,
"endTime": "2020-07-03 12:00:10",
"image": "http://cms-bucket.ws.126.net/2020/0702/f5b23bb3j00qctw0t005rc000u000f0c.jpg",
"liveStatus": 2,
"liveType": 0,
"mutilVideo": "false",
"pano": "false",
"pcImage": "http://cms-bucket.ws.126.net/2020/0702/f5b23bb3j00qctw0t005rc000u000f0c.jpg",
"roomId": 224811,
"roomName": "脱贫攻坚 法治报道 :8000只兔子的销路",
"source": "网易原创"
}
print(dict1)
# 字典中不允许键重复,如果重复会覆盖,以第一次出现的为准
print(dict1["liveStatus"]) # 输出值
# 新增元素
dict1["新的"] = 666
print(dict1)
# 更新元素
dict1["pcImage"] = None
print(dict1)
# 删除元素
dict1.pop("pcImage")
print(dict1)
# 清空字典
dict1.clear()
print(dict1)
# 获取字段全部的key
dict1 = {
"confirm": 0,
"endTime": "2020-07-03 12:00:10",
"image": "http://cms-bucket.ws.126.net/2020/0702/f5b23bb3j00qctw0t005rc000u000f0c.jpg",
"liveStatus": 2,
"liveType": 0,
}
print(dict1.keys())
# 遍历字典
for x in dict1.keys():
print(dict1[x], end=" ")
pass
# 统计字典元素的数量
print()
print(len(dict1))
容器
# len() --- 统计元素的个数
print(len("123456"))
# max() 统计容器最大元素
print(max([1, 5, 9, 2, 1, 85, 56, 5, 123, 4, 45646]))
# min() 统计容器最小元素
print(min([1, 5, 9, 2, 1, 85, 56, 5, 123, 4, 45646]))
# list()将给定容器转换成列表
# str()将给定容器转换成字符串
# tuple()将给定容器转换成元组
# set()将给定容器转换成集合
# sorted(序列,[reversed=True]) True表示降序,False代表升序
python中导入包
# 普通导入包的方式
import time
# 只导入需要的包
from time import sleep
# 导入全部的包
from time import *
# 自定义模块的导入
from my_module import myFun
print(myFun())
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ofMu9QUA-1686718941911)(./QQ截图20230612135130.png)]
JSON的处理
- 需要先导入JSON的包库
import json
import json
data1 = [{"a": 1, "b": 2}]
data2 = [{"a": 1, "b": 2, "中文": "中文展示"}]
# 将字典转为JSON
json_str = json.dumps(data1)
print(json_str)
# 如果数据中有中文需要转换
json_str = json.dumps(data2, ensure_ascii=False)
print(json_str)
# 将字符串还原为字典或者是序列
data = '{"semi": "true", "semi": "true", "singleQuote": "false", "trailingComma": "all", "printWidth": 180, "tabWidth": 2}'
print(json.loads(data))
pyecharts
使用
- 安装
pip install pyecharts
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
# 创建折线图对象
line = Line()
# 给折线图对象添加x轴的数据
line.add_xaxis(["中国", "美国", "英国"])
# 给折线图对象添加y轴的数据
line.add_yaxis("GDP", [30, 20, 10])
line.set_global_opts(
title_opts=TitleOpts(title="折线图", pos_left="center", pos_bottom="1%"),
legend_opts=LegendOpts(is_show=True),
toolbox_opts=ToolboxOpts(is_show=True),
visualmap_opts=VisualMapOpts(is_show=True)
)
# 通过render方法,将代码生成图像
line.render()
会生成一个HTML文件,在文件中即可查看
创建属于自己的包
- 自定义模块包,建立文件夹:my_package
- 在下面建立包的名字
- __init__.py
,如果没有这个文件夹和普通文件夹没有区别
# 如果是全部导入只会导入在这声明的变量名,如果单个导入,此处不会有任何作用
__all__ = ["myFun"]
def myFun():
print(1 + 2)
return 1 + 2
def myFun2():
print(1 + 2)
return 1 + 2