python入门(分享一些自己的学习经验和笔记)

2023-10-27

python入门(复制代码,试着运行一下,先体验一下python的魅力)

import turtle
"""
奥运五环的绘制使用库(turtle)
"""
turtle.width(10)
color_list = ['blue', 'black', 'red', 'yellow', 'green']
x_y_list = [(-130, 0), (0, 0), (130, 0), (-65, -50), (65, -50)]
turtle.speed(10)
for i in range(5):
    turtle.penup()
    turtle.goto(x_y_list[i])
    turtle.pendown()
    turtle.color(color_list[i])  
    turtle.circle(50)
turtle.done()
​
# turtle.width(10)
# turtle.speed(15)
# turtle.penup()
# turtle.backward(130)
# turtle.pendown()
# turtle.color('blue')  # 蓝
# turtle.circle(50)
​
# turtle.penup()
# turtle.forward(130)
# turtle.pendown()
# turtle.color('black')  # 黑
# turtle.circle(50)
​
# turtle.penup()
# turtle.forward(130)
# turtle.pendown()
# turtle.color('red')  # 红
# turtle.circle(50)
​
# turtle.penup()
# turtle.goto(-65, -50)
# turtle.pendown()
# turtle.color('yellow')  # 黄
# turtle.circle(50)
​
# turtle.penup()
# turtle.goto(65, -50)
# turtle.pendown()
# turtle.color('green')  # 绿
# turtle.circle(50)
​
# turtle.done()

python编程的基本概念

对象的组成id,type, value

内存示意图

查看python系统关键字,命令行模式下输入help()

round(value) 可以返回四舍五入的值。但不会改变原有值,而是产生新的值

a = 5.5
b = round(a)
print(a)
print(b)

位运算符

print(3<<2)    #左移1位相当于乘以2.左移两位相当于:3*4
print(20>>1)   #右移移位相当于除以2

‘is’与‘==’的区别

字符串

len()用于计算字符串含有多少字符

a = 'lz520'
print(len(a))
####  5

转义字符

#字符串拼接
#“+”拼接
#join拼接(效率高)
#replace()实现字符串替换
​
####字符串切片slice操作和索引
a = '123456'
a[start:end:step]
####split()分割和join()合并
#我们可以通过strip()去除字符串首尾指定信息。通过lstrip()去除字符串左边指定信息,rstrip()去除字符串右边指定信息

字符串查找

大小写转换

序列

列表 list, 元组 tuple, 字典dict, 集合 set

列表方法 

推导式生成列表

b = [x*2 for x in range(100) if x%9==0]  #生成符合条件的列表
#列表添加元素
a = []
a.append(1)
b = [2]
a.extend(b) #不产生新的对象
a.insert(2,100) #(index,value)
#列表元素的删除
a = [1, 2, 3]
del a[1] #[index]
a.pop(1) #默认最后一个元素
a.remove(1) #(value)
#zip(列表1,列表2,...)将多个列表对应位置的元素组合成为元组,并返回这个zip对象

字典

#get()
a = {'name': 'lz', 'age': 18}
a.get('name')#通过键得到值
#列出所有的键值对
b = a.items()
#列出所有的键,列出所有的值
k = a.keys()
v = a.values()
#给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对;如果“键”不存在,则新增“键值对”
a['name'] = 'wp'
#使用 update() 将新字典中所有键值对全部添加到旧字典对象上。如果 key 有重复,则直接覆盖
#del clear pop 删除元素

集合

#元素添加
a = {1, 3, 7}
a.add(9)
#元素的唯一性可以用来去除重复元素

元组

a = (5, 6)
b = (x for x in range(10))
# 元组推导式生成是生成器

循环与控制语句

# if分支语句
if 表达式:
    print("555")
elif 表达式:
    print("666")
else:
    print("888")
# 循环for和while
# for循环可遍历任何的序列
company = ['Google', 'Apple', 'Facebook', 'Oracle', 'Microsoft']
for x in company:
	print(x)

三元条件运算符

#条件为真时的值 if (条件表达式) else 条件为假时的值
num = 1
a = x if num == 1 else y
#循环
break #跳出整个循环
continue #跳出单次循环

lambda**表达式和匿名函数**

a = lambda x, y : x + y
print(a(10, 20))

对象

初始化对象,我们需要定义构造函数 init() 方法。构造方法用于执行“实例对象的初始化工作”,即对象创建后,初始化当前对象的相关属性,无返回值

new() 方法: 用于创建对象,但我们一般无需重定义该方法

#类方法@classmethod直接由类本身调用不需要实例化

#析构方法Python实现自动的垃圾回收,当对象没有被引用时(引用计数为0),由垃圾回收器调用 del() 。

#私有方法属性可通过dir查到_Employee__company

@property 装饰器

#测试@property
class Employee: 
    def __init__(self,name,salary):
    self.name = name
    self.__salary = salary
    @property               #相当于salary属性的getter方法
    def salary(self):
        print("月薪为{0},年薪为{1}".format(self.__salary, (12*self.__salary)))
        return self.__salary
​
    @salary.setter
    def salary(self,salary):    #相当于salary属性的setter方法
        if(0<salary<1000000):
            self.__salary = salary
        else:
            print("薪水录入错误!只能在0-1000000之间")
​
emp1 = Employee("高淇",100)
print(emp1.salary)
emp1.salary = -200

#dir() 查看对象属性
#mro查看类结构

设计模式之单例模式和工厂模式

 可以自己动手敲敲熟悉熟悉

# 单例模式
class MySingleton:
    __obj = None
    __init_flag = True
​
    def __new__(cls, *args, **kwargs):
        if cls.__obj is None:
            cls.__obj = object.__new__(cls)
        return cls.__obj
​
    def __init__(self, name):
        if MySingleton.__init_flag:
            print("init....")
            self.name = name
            MySingleton.__init_flag = False
​
​
a = MySingleton("aa")
print(a)
b = MySingleton("bb")
print(b)
​
#工厂模式
class CarFactory:
    def createCar(self,brand):
        if brand == "奔驰":
            return Benz()
        elif brand == "宝马":
            return BMW()
        elif brand == '比亚迪':
            return BYD()
        else:
            return "未知品牌,无法创建"
​
class Benz:
    pass
​
class BMW:
    pass
​
class BYD:
    pass
​
factory = CarFactory()
c1 = factory.createCar("奔驰")
c2 = factory.createCar("宝马")
print(c1)
print(c2)
#单例模式和工厂模式结合

class MySingleton:
    __obj = None
    __init_flag = True
​
    def __new__(cls, *args, **kwargs):
        if cls.__obj is None:
            cls.__obj = object.__new__(cls)
        return cls.__obj
​
    def __init__(self, name):
        if MySingleton.__init_flag:
            print("init....")
            self.name = name
            MySingleton.__init_flag = False
    
     def createCar(self,brand):
        if brand == "奔驰":
            return Benz()
        elif brand == "宝马":
            return BMW()
        elif brand == '比亚迪':
            return BYD()
        else:
            return "未知品牌,无法创建"
        
class Benz:
    pass
​
class BMW:
    pass
​
class BYD:
    pass

想了解什么是单例模式可参考写文章-CSDN创作中心

工厂模式可参考设计模式之工厂模式(factory pattern) - alpha_panda - 博客园 (cnblogs.com)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python入门(分享一些自己的学习经验和笔记) 的相关文章

  • 在 numpy 数组中查找满足条件的大量连续值

    我在 numpy 数组中加载了一些音频数据 我希望通过查找静音部分 即一段时间内音频幅度低于特定阈值的部分 来对数据进行分段 一个非常简单的方法是这样的 values join 1 if abs x lt SILENCE THRESHOLD
  • 在 python + openCV 中使用网络摄像头的问题

    我正在使用以下代码使用 openCV python 访问我的网络摄像头 import cv cv NamedWindow webcam feed cv CV WINDOW AUTOSIZE cam cv CaptureFromCAM 1 然
  • 通过 Python 与 Windows 控制台应用程序交互

    我在 Windows 上使用 python 2 5 我希望通过 Popen 与控制台进程交互 我目前有一小段代码 p Popen console app exe stdin PIPE stdout PIPE issue command 1
  • 如何测试顶级窗口是否打开?

    我感觉 Python 编程可能不是我的菜 我创建了一个 tkinter GUI 它使用按钮回调来打开另一个窗口 其他搜索说这个窗口应该是顶级窗口 并且它工作得很好 但是每次按下按钮时它都会打开另一个相同的窗口 如据我所知 窗口 问题 如何测
  • 使用 Flask SQLAlchemy 进行表(模型)继承

    我遵循了这个建议question https stackoverflow com questions 1337095 sqlalchemy inheritance但我仍然收到此错误 sqlalchemy exc NoForeignKeysE
  • Python中#和"""注释的区别

    开始用 Python 编程 我看到一些带有注释的脚本 and comments 这两种评论方式有什么区别 最好的事情就是阅读PEP 8 Python 代码风格指南 https www python org dev peps pep 0008
  • 运行源代码中包含 Unicode 字符的 Python 2.7 代码

    我想运行一个在源代码中包含 unicode utf 8 字符的 Python 源文件 我知道这可以通过添加评论来完成 coding utf 8 在一开始的时候 但是 我希望不使用这种方法来做到这一点 我能想到的一种方法是以转义形式编写 un
  • Keras,如何获取每一层的输出?

    我已经用 CNN 训练了一个二元分类模型 这是我的代码 model Sequential model add Convolution2D nb filters kernel size 0 kernel size 1 border mode
  • Python 中的二进制相移键控

    我目前正在编写一些代码 以使用音频转换通过激光传输消息 文件 和其他数据 我当前的代码使用 python 中 binascii 模块中的 hexlify 函数将数据转换为二进制 然后为 1 发出一个音调 为 0 发出不同的音调 这在理论上是
  • Python 3.x 中的 PIL ImageTk 等效项

    我正在使用 Tkinter 开发一个应用程序 它使用以下数据库png图标的图像文件 为了在应用程序中使用所述图像 我使用 PIL 打开它们Image open 运行它通过ImageTk PhotoImage函数 然后将其传递给小部件构造函数
  • Docker:通过 Gunicorn 运行 Flask 应用程序 - Worker 超时?表现不佳?

    我正在尝试创建一个用Python Flask编写的新应用程序 由gunicorn运行 然后进行dockerized 我遇到的问题是 docker 容器内的性能非常差 不一致 我最终得到了响应 但我不明白为什么性能会下降 有时我会在日志中看到
  • keras 预测内存交换无限期增加

    我使用keras实现了一个分类程序 我有一大组图像 我想使用 for 循环来预测每个图像 然而 每次计算新图像时 交换内存都会增加 我尝试删除预测函数内部的所有变量 并且我确信该函数内部存在问题 但内存仍然增加 for img in ima
  • 如何在Python中正确声明ctype结构+联合?

    我正在制作一个二进制数据解析器 虽然我可以依靠 C 但我想看看是否可以使用 Python 来完成该任务 我对如何实现这一点有一些了解 我当前的实现如下所示 from ctypes import class sHeader Structure
  • 从文档字符串生成 sphinx 文档不起作用

    我有一个具有以下结构的项目 我想保留 my project build here is where sphinx should dump into requirements txt make bat Makefile more config
  • 如何在 Spyder IDE 中安装 Selenium 包

    我刚刚在工作中安装了 Spyder IDE 仅 Spyder 不是整个 Anaconda 并且希望使用 FireFox 自动化我的工作 我的问题是 如何安装 Selenium 软件包 I figured it out Here is ins
  • 从 subprocess.Popen 获取整个输出

    我通过调用 subprocess Popen 得到了一个有点奇怪的结果 我怀疑这与我对 Python 的陌生有很大关系 args cscript USERPROFILE tools jslint js USERPROFILE tools j
  • Pandas - 分割大的Excel文件

    我有一个大约有 500 000 行的 Excel 文件 我想将其拆分为多个 Excel 文件 每个文件有 50 000 行 我想用熊猫来做 这样它会是最快和最简单的 有什么想法如何制作吗 感谢您的帮助 假设您的 Excel 文件只有一个 第
  • 在 Gensim 中通过 ID 检索文档的字符串版本

    我正在使用 Gensim 进行一些主题建模 并且已经达到使用 LSI 和 tf idf 模型进行相似性查询的程度 我取回 ID 集和相似点 例如 299501 0 64505910873413086 如何获取与 ID 在本例中为 29950
  • 提供节点名或服务名,或未知

    我收到这个 Python 错误 File Library Frameworks Python framework Versions 2 7 lib python2 7 urllib2 py line 1184 in do open rais
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本

随机推荐

  • 手机解除移动宽带屏蔽_FANUC/三菱M70系统如何屏蔽伺服轴?

    有时为了调试方便和操作方便需要 需将伺服脱开或电机脱开 比如 在拆除四轴时 屏蔽相关的一些报警就可以通过参数屏蔽伺服轴 在维修电机或拆卸工作台时 需要将电机或工作台拆下时 就可以通过参数屏蔽相关的报警 其他轴不受拆除轴的影响还可正常移动运转
  • QT DAY1

    做一个窗口界面 include mainwindow h include ui mainwindow h MainWindow MainWindow QWidget parent QMainWindow parent ui new Ui M
  • CSDN专家博客网址

    CSDN Blog 所有专家 分类 业界 软件工程 项目管理 NET JAVA Delphi C C WEB开发 数据库 移动开发 开源 游戏开发 企业开发 工具 产品 综合 网络管理 IT媒体 云计算 业界蒋涛 周筠 芮祥麟 余平 陈荣华
  • iPhone 各屏幕尺寸及解析

    一 iPhone 各屏幕尺寸表 手机型号 屏幕尺寸 inch 像素密度 PPI 逻辑分辨率 point 物理分辨率 屏幕分辨率 pixel 缩放因子 scale factor 宽高比 近似 比例 近似 3GS 3 5 inch 163 pp
  • 如何用API函数获取网卡或硬盘的序列号

    转自 https zhidao baidu com question 502153566675093684 html include
  • 使用.NET中的XML注释(一) -- XML注释标签讲解

    一 摘要 Net允许开发人员在源代码中插入XML注释 这在多人协作开发的时候显得特别有用 C 解析器可以把代码文件中的这些XML标记提取出来 并作进一步的处理为外部文档 这篇文章将展示如何使用这些XML注释 在项目开发中 很多人并不乐意写繁
  • 网络协议有哪些?

    除了TCP IP协议以外 还有很多其他的网络协议 1 HTTP 超文本传输协议 用于在Web浏览器和Web服务器之间传输数据 2 FTP 文件传输协议 用于在不同计算机之间传输文件 3 SMTP 简单邮件传输协议 用于在不同计算机之间传输电
  • 5-1:什么是Servlet-开发你的第一个动态网站

    4 1 JavaWeb开发环境 1 安装IDEA 2 IDEA配置tomcat9 MAC版 兄弟们 这一章的内容我录制了一个视频 可以观看一下 5 1 什么是Servlet 开发你的第一个动态网站 本节内容配套视频 https www bi
  • 当下流行的 Web 编程语言都有哪些?

    如果你是一名新晋的 Web 开发人员 那么在选择最佳 Web 编程语言时将面临很多困难 不同的编程语言支持不同的编程技术 而且各有各的复杂性 此外 新的编程语言层出不穷 让人看得眼花缭乱 在本文中 我们将列出一些最适合 Web 开发的编程语
  • 总结之java代码规范(一)——注释规范、IDEA类和方法注释模板设置

    最近新团队需要需要整一套适合java代码规范 基于阿里java开发手册规范一下代码规范 一 注释要求 1 强制 类 类属性 类方法的注释必须使用javadoc规范 使用 内容 格式 不得使用 xxx方式 2 强制 所有的抽象方法 包括接口中
  • 掩码语言模型(Masked Language Model)mlm

    https www cnblogs com anai p 11645953 html bert 论文 从语言模型到Seq2Seq Transformer如戏 全靠Mask https zhuanlan zhihu com p 6910608
  • 目标检测+光流跟踪

    最近学习了LK光流法 主要用于运动目标的跟踪 于是想着和之前codebook运动目标检测结合起来 实现先检测再跟踪 下面介绍目标检测跟踪流程 1 使用codebook进行背景学习 2 使用codebook不断进行运动目标检测 3 若发现运动
  • Idea-maven项目创建及javafx运行案例

    Idea maven项目创建及javafx运行案例 文章目录 Idea maven项目创建及javafx运行案例 maven项目创建 maven javafx项目配置 首先先把可能要添加的依赖理清楚 配置pom xml文件 但是与此同时还是
  • 567. Permutation in String

    567 Permutation in String Given two strings s1 and s2 write a function to return true if s2 contains the permutation of
  • 为什么需要专门出现GPU来处理图形工作,CPU为啥不可以?

    GPU 是并行编程模型 和CPU的串行编程模型完全不同 导致很多CPU 上优秀的算法都无法直接映射到GPU 上 并且GPU的结构相当于共享存储式多处理结构 因此在GPU上设计的并行程序与CPU 上的串行程序具有很大的差异 GPU主要采用立方
  • 2023最火软件测试工程师涨薪攻略,3年如何达到30K?

    软件测试如何实现涨薪 首先涨薪并不是从8000涨到9000这种涨薪 而是从8000涨到15K加到25K的涨薪 基本上三年之内就可以实现 如果我们只是普通的有应届毕业生或者是普通本科那我们就只能从小公司开始慢慢往上走 有些同学想去做测试 是希
  • rm -rf *后怎么办?

    1 冷静 2 查看字盘文件系统类型 sudo fdisk l 3 根据对应文件系统 下载相应软件进行数据恢复 文件系统 处理方法 参考链接 Microsoft basic data NTFS HPFS ntfsundelete https
  • 数组、链表、跳表的时间复杂度和空间复杂度

    数组 链表 跳表的时间复杂度和空间复杂度 一 数组 二 链表 Linked List Java中实现是双向链表 三 跳表 一 数组 1 1头插入 尾插入 中间某个位置插入 时间复杂度为O 1 空间复杂度为O n 时间复杂度为O 1 空间复杂
  • 七天LLVM零基础入门(Linux版本)------第二天

    作者 snsn1984 在第一天的时候 我们简单了解了llvm和clang 今天我们继续对LLVM进行学习 第一步 学会如何查找LLVM的文档 LLVM的文档很多 也很全面 是开源软件中文档比较全面并且比较细致的 这是很难得的一个事情 所以
  • python入门(分享一些自己的学习经验和笔记)

    python入门 复制代码 试着运行一下 先体验一下python的魅力 import turtle 奥运五环的绘制使用库 turtle turtle width 10 color list blue black red yellow gre