python学习路线

自用

在这里插入图片描述
在这里插入图片描述
Task1:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:

list1 = ["这", "是", "一个", "测试"]
for i in range (len(list1)):print i ,list1[i]#上述方法有些累赘,利用enumerate()会更加直接和优美:list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1):print index, item
>>>
012 一个
3 测试
#enumerate还可以接收第二个参数,用于指定索引起始值,如:
list1 = ["这", "是", "一个", "测试"]
for index, item in enumerate(list1, 1):print index, item
>>>
123 一个
4 测试#如果要统计文件的行数,可以这样写:
count = len(open(filepath, 'r').readlines())
#这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。#可以利用enumerate():
count = 0
for index, line in enumerate(open(filepath,'r')): count += 1

列表推导式

在这里插入图片描述

task2:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这个用法就和C语言的格式化输出很像

print('%c' % 97)  # a
print('%f' % 27.658)  # 27.658000
print('%5.1f' % 27.658)  # ' 27.7'

注意:如果我们取的键在字典(dict)中不存在,会直接报错KeyError
C++的Map会创建这个key的元素,为它赋初值为0。
dict创建的语法有些特殊:

dic1 = dict([('apple', 4139), ('peach', 4127), ('cherry', 4098)])
dic2 = dict((('apple', 4139), ('peach', 4127), ('cherry', 4098)))

在这里插入图片描述

dick的函数keys和vaules在这里插入图片描述

list.remove(obj) 移除列表中某个值的第一个匹配项
在这里插入图片描述
remove 和 pop 都可以删除元素,前者是指定具体要删除的元素,后者是指定一个索引。在这里插入图片描述

不知道Python其他 的list删除会不会有迭代器失效的问题,《Python核心编程》提到的问题,待测。

通过将索引指定为-1,可让Python返回最后一个列表元素,索引 -2 返回倒数第二个列表元素,以此类推。

Python的数值(列表)切片非常常用,取值范围前闭后开。x[start : stop : step] step为步长,默认为1。
在这里插入图片描述

注意最后把 step 设为 -1,相当于将列表反向排列。

tuple(sub) 把一个可迭代对象转换为元组。
task 3
我为啥之前不复制要截图捏

函数

内嵌函数
在这里插入图片描述

闭包

  • 是函数式编程的一个重要的语法结构,是一种特殊的内嵌函数。
  • 如果在一个内部函数里对外层非全局作用域的变量进行引用,那么内部函数就被认为是闭包。
  • 通过闭包可以访问外层非全局作用域的变量,这个作用域称为 闭包作用域
def funX(x):def funY(y):return x * yreturn funYi = funX(8)
print(type(i))  # <class 'function'>
print(i(5))  # 40
#这语法巨奇怪有啥用啊

Python 的魔法方法

据说,Python 的对象天生拥有一些神奇的方法,它们是面向对象的 Python 的一切…

它们是可以给你的类增加魔力的特殊方法…

如果你的对象实现了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,而这一切都是自动发生的…

类有一个名为__init__(self[, param1, param2...])的魔法方法,该方法在类实例化时会自动调用。
也就是c++的构造函数

公有和私有

在 Python 中定义私有变量只需要在变量名或函数名前加上“__”两个下划线,那么这个函数或变量就会为私有的了。

class JustCounter:__secretCount = 0  # 私有变量publicCount = 0  # 公开变量

继承

Python 同样支持类的继承,派生类的定义如下所示:

class DerivedClassName(BaseClassName):

       statement-1

              .

              .

              .

       statement-N

BaseClassName(基类名)必须与派生类定义在一个作用域内。除了类,还可以用表达式,基类定义在另一个模块中时这一点非常有用:

class DerivedClassName(modname.BaseClassName):

       statement-1

              .

              .

              .

       statement-N

参考资料:
天池龙珠计划之Python学习电子书_v0.0.2.pdf
https://blog.csdn.net/churximi/article/details/51648388
http://joyfulpandas.datawhale.club/Content/index.html

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

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

相关文章

解决使用MinGW编译C++代码报cannot find -lxxxx的问题

报错的截图如下面所示 我一开始使用target_link_libraries(ThreadTest libsdf_core.dll)这条命令来将dll库文件和项目文件关联起来&#xff0c;但是解决不了问题也尝试在编译代码的环境时候&#xff0c;将dll库文件的绝对路径加入到编译环境中&#xff0c;但是也没有用解决办法…

Linux搭建深度学习环境使用指南

本文档归纳不收悉的linux知识点&#xff0c;自用 终端美化&#xff1a;https://zhuanlan.zhihu.com/p/37195261&#xff08;unix终端通用&#xff09; 基础linux命令&#xff1a;https://blog.csdn.net/q357010621/article/details/80248611 shell是什么&#xff1f;shell是一…

CLion 输出遇到乱码解决办法,GBK和utf-8的转换

具体操作 File -> Settings -> Default Settings -> Editor -> File Encodings:Global Encoding: UTF-8Project Encoding : UTF-8Default encoding for properties files: UTF-8 图片展示 然后&#xff0c;在main.cpp右下角选择语言编码格式为GBK&#xff0c;在弹…

Vim使用方法归纳

编辑模式i 0 &#xff1a;光标移至行首d0 : 删除到行首$ &#xff1a;光标移至行尾D/d$ : 删除到行尾dd &#xff1a; 删除当前行yy/nyy : 复制当前行/复制n行p/P &#xff1a; 粘贴&#xff08;vim中删除是剪切&#xff0c;可以删除后用p粘贴&#xff09;u &#xff1a; 撤回…

区块链中涉及到密码学的场景

区块链中涉及到密码学的场景 共识算法&#xff08;Consensus algorithm&#xff09;交易签名&#xff08;Signing transaction)第二层网络如何在第一层网络中验证&#xff08;Layer2’s verification on Layer1&#xff09;验证跨链交易&#xff08;Verifying the cross chain…

epoll 转kqueue的用法介绍和实例 实现跨平台Macos

网上关于kqueue的博客很少 我来补充一个例子echo 的例子 #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> #include <string.h> #include<stdio.h> #include<arpa/inet.h> #include<sys/event.…

区块链中的密码学,使用ABE结合区块链

ABE 密码学&#xff0c;以及与区块链结合的价值 背景 区块链技术具备篡改难度高、使用成本低、分布式的优点&#xff0c;本应成为各行各业的重要助力。但是由于链上参与方担心自己的核心数据外泄&#xff0c;不愿将自己的核心数据上链&#xff0c;这个原因成为阻止区块链落地…

VMware虚拟机安装Ubuntu系统教程

所使用的文件如下&#xff1a; VMware Workstation 17 Pro ubuntu-22.04.3-desktop-amd64.iso 一、ubuntu 命名规则及各版本一览表 1.ubuntu 命名规则&#xff1a; 例如&#xff1a;ubuntu 16.04 LTS 是长期维护版本&#xff1b;ubuntu 17.04 是新特性版本 前两位数字为发…

C++静态类型成员变量的初始化顺序(单例模式)

对编译器来说&#xff0c;静态成员变量的初始化顺序和析构顺序是一个未定义的行为 #include <string> #include <iostream> using namespace std; class Base{ public:static int b;static int a;}; int Base::b 2; int Base::a b 1;int main() {Base base;cou…

区块链中密码学与安全技术

区块链的定义 区块链的定义&#xff0c;应当是&#xff1a;区块链是一种按照时间顺序将数据进行分布式存储的块链式数据结构&#xff0c;它利用共识机制进行数据验证&#xff0c;利用密码学进行数据保护和用户安全访问&#xff0c;利用智能合约来操作数据&#xff0c;从而成为…

面经:服务器相关

阻塞IO 当你去读一个阻塞的文件描述符时&#xff0c;如果在该文件描述符上没有数据可读&#xff0c;那么它会一直阻塞(通俗一点就是一直卡在调用函数那里)&#xff0c;直到有数据可读。当你去写一个阻塞的文件描述符时&#xff0c;如果在该文件描述符上没有空间(通常是缓冲区)…

如何用区块链保障数据安全和承载数据确权

区块链可以确保数据安全&#xff0c;体现在那些方面呢&#xff1f; 主要是两个维度&#xff0c;一是数据的不可篡改性&#xff1b;另外一个就是数据的隐私安全性。区块链技术本身并不解决任何的安全问题&#xff0c;因此需要搭配安全技术一起使用&#xff0c;比如非对称加密、…

面经:单例模式

侯捷单例 和剑指不同 &#xfffc; 饿汉式 饿汉式的特点是一开始就加载了&#xff0c;如果说懒汉式是“时间换空间”&#xff0c;那么饿汉式就是“空间换时间”&#xff0c;因为一开始就创建了实例&#xff0c;所以每次用到的之后直接返回就好了。饿汉式有两种常见的写法&…

属性加密技术及基于属性的ABE算法的访问控制技术介绍

属性加密技术 基于身份的加密体制简介 基于身份的加密体制可以看作一种特殊的公钥加密&#xff0c;它有如下特点:系统中用户的公钥可以由任意的字符串组成。这些字符串可以是用户在现实中的身份信息&#xff0c;如:身份证号码、用户姓名、电话号码、Email地址等&#xff0c;因…

面经:http协议

总结HTTPS传输过程 客户端先从服务器获取到证书&#xff0c;证书中包含公钥 客户端将证书进行校验 客户端生成一个对称密钥&#xff0c;用证书中的公钥进行加密&#xff0c;发送给服务器 服务器得到这个请求后用私钥进行解密&#xff0c;得到该密钥 客户端以后发出后续的请求&…

基于属性加密的ABE算法的应用场景思考展望

ABE算法先前使用在云计算场景中&#xff0c;和区块链存在交叉应用场景&#xff0c;具体问题体现在 数据的异地存储、云服务器提供商的不可信、管理员能否对自身数据拥有足够的控制能力以及如何保证数据的安全有效共享都是亟需解决的问题。 研究背景&#xff1a; 云计算越来越…

面经:设计模式

什么是接口隔离原则&#xff08;Interface Segregation Principle&#xff09; 定义&#xff1a;客户端不应该依赖它不需要的接口&#xff1b;一个类对另一个类的依赖应该建立在最小的接口上。概括的说就是&#xff1a;建立单一接口&#xff0c;不要建立臃肿庞大的接口。&…

区块链、密码和银行之间的衍生关系

银行场景中密码服务 设置密码 用户在注册的时候&#xff0c;如果使用弱密码&#xff0c;系统会检测出来。我的猜测是将弱密码的hash运算和用户输入的密码hash比对&#xff0c;如果一致&#xff0c;禁止用户注册。 1、不要设置简单密码&#xff0c;您设置的密码必须符合中信银…

面经:多线程 线程池

使用线程池 当进程被初始化后&#xff0c;主线程就被创建了。对于绝大多数的应用程序来说&#xff0c;通常仅要求有一个主线程&#xff0c;但也可以在进程内创建多个顺序执行流&#xff0c;这些顺序执行流就是线程&#xff0c;每一个线程都是独立的。 线程是进程的组成部分&am…

AIgorand区块链中VRF随机函数的应用

VRF&#xff08;Verifiable Random Function&#xff09; 可验证随机函数可以看作是一个随机预言机&#xff0c;即可以通过任意的一个输入&#xff0c;获得一个随机数输出&#xff1a;输出的结果&#xff08;Output&#xff09;是一个随机数&#xff0c;其数值会均匀分布在值域…