python 自主学习笔记

文章目录

  • 前言
  • 相关教程
  • 模板字符串
    • JavaScript
    • C#
    • Python
  • 临时变量
    • C#的ValueTuple
    • Python
    • 字典
  • 自定义模块化封装的文件路径问题
    • 解决方案
  • 暂时结束

前言

最近在学halcon,机器视觉,越学越发现,python是无法避免的语言。因为python用途实在是太广了。python在计算机的地位和英语在世界语言的地位一样,是独一档的。无论是什么程序员,还是其它职业的工作人员,都可以去学一下Python。

相关教程

Python 3 教程|菜鸟教程

模板字符串

Python和C#,JavaScirpt,都推出了各自的模板字符串。这里要点名一下Java,Java的模板字符串出现的太晚了。Java 21才推出。其实好的设计语言都是互通的。
在这里插入图片描述

JavaScript

var name = '小王'
var age = 16
var str = `我是${小王},今年${age}`

C#

string name = "小王";
int age = 16;
string str = $"我是{小王},今年{age}岁"

Python

python 中的 f 字符串及其常见用法

name = '小王'
age = 16
print(f'我叫{name},age={16}')

临时变量

说到临时变量,C#有匿名对象和元组,元组是最佳的临时变量。C#也有两种元组,Tuple和ValueTuple。元组在我的这里的评价的是临时变量。Python具有不可变性的常量。但是我觉得不可变性的用处不大。

C#的ValueTuple

C#就不展开说明了,之前做过了

C# 元祖,最佳的临时变量

Python

Python的元组需要引入命名空间,而且需要函数创建。这个就不够优雅了。

# 需要额外引入命名空间
from collections import namedtuple
# 需要保证Tuple命名和入参的名称一致
Mytuple = namedtuple("Mytuple",['x','y'])
p1 = Mytuple(x = 1,y =2)
print(p1.x,p1.y)

字典

感觉我的思路是错误的,Python里面的元组就是用来返回静态常量的,Python里面的字典倒是可以实现我想要的参数的功能

在这里插入图片描述

自定义模块化封装的文件路径问题

模块之间的互相引用是必须的,因为复杂的项目一定是封装成多个文件,这样才具有复用性,解耦性。
在其它语言中,我们都是先创建一个解决方案,由解决方案去管理整个文件路径,又有一个命名空间的概念,命名空间就是每个类的住址的唯一门牌号,这样才能保证我们的类的引用不会出错

【Python】Python 包 ② ( 自定义 Python 包 | 导入并调用自定义 Python 包 | __init__.py 定义 __all__ 变量 )

python的构建工具setup.py的方法使用示例

python 文件夹py文件相互引用
但是上面的方法都是有问题的

我找了半天,我终于了解决的方案。

python3:sys.path.append(“…/”)就是在挖坑

在下面的评论区里面找到了答案
在这里插入图片描述

解决方案

比如我的文件路径结构

  • test.py
  • folder1
    • test1.py
  • folder2
    • test2.py
  • folder3
    • folder4
      • test4.py

跨文件的调用是非常麻烦的,但是我们可以重定向到文件根路径

test2.py调用test1.py

import sys,os
# 选择当前文件路径
os.chdir(os.path.dirname(__file__))
# 当前文件路径的上一层路径
sys.path.append("../")from folder1 import test1

如果是test4.py,两层文件路径,则需要再往上一层
test4.py 调用test1.py

import sys,os
# 选择当前文件路径
os.chdir(os.path.dirname(__file__))
# 当前文件路径的上两层路径
sys.path.append("../../")from folder1 import test1

虽然一般没有两层文件夹,但是我得有解决的方案

我测试过,跟文件调用也没有任何问题

# 完全没有任何问题
from folder3.folder4 import test4

暂时结束

我后面再研究一下Python的面向对象,我就可以彻底用python写复杂项目了。后面就是常用工具类的使用了,比如json,log,网络通讯等功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/194325.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c/c++的字符和字符串输入输出

注: 1.下面这些为本人大学四年所用过的处理办法, 至今为止遇到的所有编程题都能够使用。如果需要了解更多关于putchar,cin.get,cin.getline等的请自行搜索。 2.getchar相当于获取一个字符,可以实现单个字符的输入以及通过循环实现多个字符输…

英语语法学习 - 每周更新学英语知识点

目录 询问 Would Some用法 Any用法 数量限定词 数量限定词之 all 和 both Everybody/Everyone 不定代词指代人 不定代词搭配“else”用法 bring It takes time to ... 询问 Would would 主语 like noun/to do? 询问他人意愿 Would you like dinner&#xff…

使用 Unsplash API 生成随机图片

Unsplash 如果你想使用免费版权的图片时,无论你是否用于商业用途,Unsplash 是不错的选择。 我自己也经常用它来制作大型背景图片 虽然他们为开发人员提供了很棒的 API,但他们也提供了通过 URL 访问随机图片的选项。 1. 默认随机 请看这个例子…

ChaoJi充电连接装置典型试验案例分析 GB/T 20234.1充电连接装置型式试验变化分析

GB/T 20234.1充电连接装置典型试验变化分析 1、ChaoJi充电连接装置典型试验案例分析 1.1、大功率直流充电接口 1.2、枪线尺寸、重量、面积数据对比 1.3、枪线温升对比试验 1.4、chaoji 枪线温升试验 1.5、chaoji枪线防护等级试验 1.6、GB/T 20234.4项目列表 1.7、小结 ✓ 通…

GenericServlet 和 HttpServlet

在 Java Web 开发中,GenericServlet 和 HttpServlet 是两个重要的类,用于处理客户端的请求和生成响应。它们是基于 Java Servlet API 的关键组件,为开发人员提供了处理 Web 请求和实现服务器端逻辑的强大工具。 GenericServlet GenericServ…

Failed building wheel for opencv-python which use PEP 517

这主要是opencv-python版本更新以后wheels也更新了,但是相关安装软件没有及时适配,所以不管是使用pip直接安装还是换源其实效果都是报错,解决方法就是直接指定安装旧版opencv-python完事儿,例如: pip3 install opencv…

37. 解数独

题目描述 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图) …

H264初探

ref: 【科普】“视频”是怎么来的?H.264、码率这些词又是什么意思?_哔哩哔哩_bilibili H.264编解码原理浅析 - 知乎

基于Java SSM框架+Vue实现旅游资源网站项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现旅游资源网站演示 摘要 本论文主要论述了如何使用JAVA语言开发一个旅游资源网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述旅游…

Elasticsearch:什么是向量数据库?

向量数据库定义 向量数据库是将信息存储为向量的数据库,向量是数据对象的数值表示,也称为向量嵌入。 它利用这些向量嵌入的强大功能来对非结构化数据和半结构化数据(例如图像、文本或传感器数据)的海量数据集进行索引和搜索。 向…

Linux 性能压测

目录 1、内存 (1) 查看内存指令 (2) 清理缓存 (3) swap分区的作用 2、cpu (1) 查看cpu核心数 (2) 查看cpu使用率 (3) 查看cpu使用百分比 (5) 查看cpu温度 (6) cpu压力测试 3、磁盘 (1) 查看磁盘信息 (2) 数据恢复相关 (3) 查看磁盘io (4) 磁盘压测 1、内存 (1) …

MATLAB Simulink +STM32硬件在环 (HIL)实现例程测试

MATLAB Simulink STM32硬件在环 (HIL)实现例程测试 📍相关篇《STM32CubeMxMATLAB Simulink点灯程序》✨本例程没有使用到STM32CubeMX来创建工程(在Simulink 中不是选择的STM32xxxbased类型的)。 🔖STM32xxx…

基于SSM的网上手机销售系统

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

llama.cpp部署通义千问Qwen-14B

llama.cpp是当前最火热的大模型开源推理框架之一,支持了非常多的LLM的量化推理,生态比较完善,是个人学习和使用的首选。最近阿里开源了通义千问大语言模型,在众多榜单上刷榜了,是当前最炙手可热的开源中文大语言模型。…

go语言学习-并发编程(并发并行、线程协程、通道channel)

1、 概念 1.1 并发和并行 并发:具有处理多个任务的能力 (是一个处理器在处理任务),cpu处理不同的任务会有时间错位,比如有A B 两个任务,某一时间段内在处理A任务,这时A任务需要停止运行一段时间,那么会切换到处理B任…

微服务的应用架构

架构描述的是在更高层次将应用拆分为子系统或模块的方法,以及这些子系统之间的交互关系。在一个基于微服务架构构建的应用中,每个服务都需要有自己的架构。 事实上,单体应用在复杂度较低时,它的生产效率是要高于微服务的。只有在…

算法 | 每日一题 | 可获得的最大点数 | 滑动窗口

1423. 可获得的最大点数 原题地址: 力扣每日一题:可获得的最大点数 几张卡牌 排成一行,每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动,你可以从行的开头或者末尾拿一张卡牌,最终你必须正好拿…

LoRaWAN协议栈LoRaMac-Node版本变迁历史(最新4.7.0)

V4.7.0 2022年12月9日发布 简介 基于“ LoRaWAN 规范1.0.4”和“ LoR aWan 规范1.1.0 FCntDwn 勘误表”的版本,“ LoRA WAN 区域参数2-1.0.3” GitHub报告了问题更正 已知的限制 SAMR34平台不实现NVM存储功能。这是大于或等于1.0.4的LoRaWAN版本的要求。 维护者…

JsonDeserialize序列化和反序列化(JSON转Java对象,反之)

我是直接用默认的&#xff0c;省事省事省事 JsonSerialize // 序列化JsonDeserialize // 反序列化private List<List<LinkedHashMap<String, Object>>> s; 一、JsonDeserialize注解介绍 JsonDeserialize注解是Jackson库提供的一种注解&#xff0c;用于指定反…

React18 入门与进阶

React18 入门与进阶 前言一、核心概念与类组件使用1、虚拟DOM与新的渲染写法2、JSX 与 JSX 的使用3、类组件和函数组件4、类组件与类组件通信5、props详解与注意事项6、类组件中事件的使用7、类组件响应式数据实现与原理8、PureComponent 与 shouldComponentUpdate9、immutable…