python自学笔记

python部分总结

  • 主要记录的是python与之前学的语言的不同之处
  1. 函数总结
    首字母大写: name.title()
    删除右边空格(暂时):name.rstrip()
    删除左边空格(暂时):name.lstrip()
    删除前缀(暂时):name.removeprefix()
    在列表末尾处添加:list.append('1')
    在任意位置进行插入元素:list.insert(0,'A')
    删除元素(永久):del list[0]
    删除尾端元素并将其弹出(也可根据下标进行删除):last = list.pop()
    根据列表中的值删除元素:list.remove('A')
    按首字母排序(永久):list.sort()
    按首字母排序(临时):list.sorted()
    反向打印:list.reverse()
    列表长度:len(list)
    生成数值:range(1,5)并不包含5 range6)是0~5
    提取字典中的一个键值对:favorite_languages.items()
    输入函数:input('请输入: ')
    索引加遍历:enumerate(list)
    将python对象编码成Json字符串:json.dumps(py对象, indent=4)
    将Json字符串接吗成python对象:json.loads(contents)
    
  2. 在字符串中使用变量
    last_name = shi
    first_name = zhaoyu
    full_name = f"{first_name} {last_name}"
    print(f"Hello, {full_name}")
    
  3. 索引

    索引为-1时是提取列表中的最后一个元素

    list = ['1', '2', '3']
    list[-1]的值是3
    
  4. For循环
    magicians = ['alice', 'david', 'carolina']
    for magician in magicians:print (f"I cant wait to see you next trick, {magician.title()}")
    
    • 不要忘记给需要循环的代码语句进行缩进
    • 不要忘记加后面的冒号
  5. 使用range()函数创建数值列表

    可以使用 list() 函数将 range() 函数的结果直接转换为列表。如果将 range() 作为 list() 的参数,输出的将会是一个数值列表

    print(list(range(6)))
    
    list = []
    for value in range(1, 11):l = value ** 2#两个星号表示乘方list.append(l)
    print(list)
    

    第二个程序是创建一个列表,其中包含前十个证书的平方

  6. 列表推导式
    squares = [value ** 2 for value in range(1,11)]
    print(squares)
    

    跟5中的range()函数例子类似

  7. 切片
    players = ['charles', 'martina', 'michael', 'florence', 'eli']
    print(players[0:3])
    
    • players[0:3]输出的是下标为0、1、2的三个元素
    • 如果冒号左边没有数字,会从列表的第一位开始输出,同理右边
    • players[-3 : ]是打印最后三个元素的意思
    切片遍历
    players = ['charles', 'martina', 'michael', 'florence', 'eli']
    for player in players[:3]:print(player.title())
    
    复制列表
    my_food = ['pizza', 'falafel', 'carrot cake']
    friend_food = my_food[:]
    print(my_food)
    print(friend_food)
    
  8. If语句
    cars = ['audi', 'bmw', 'subaru', 'toyota']
    for car in cars:if car =='bmw':print(car.upper())else:print(car.lower())
    
    • 不要忘了冒号
  9. 检查特定的值是否在列表中
    requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
    print('mushrooms' in requested_toppings)
    
    • 用关键词 in
    • 反之如果想要确定一个元素是否不在列表中用关键词 not in
  10. 字典

    字典是一系列键值对。每个键都与一个值关联,可以使用键来访问预支有关的值。与键有关的值可以是数、字符串、列表乃至字典。事实上,可将python中的任意对象用作字典中的值。

    alien_0 = {'color': 'green', 'point': 5}
    print(alien_0['color'])
    print(alien_0['point'])
    
    添加键值对
    alien_0 = {'color': 'green', 'point': 5}
    print(alien_0)
    alien_0['x_position'] = 0
    alien_0['y_position'] = 25
    print(alien_0)
    
    修改键值对中的值
    alien_0 = {'color': 'green', 'point': 5}
    alien_0['color'] = 'yellow'
    print(alien_0['color'])
    
    删除键值对
    alien_0 = {'color': 'green', 'point': 5}
    del alien_0['point']
    
    • del 语句,彻底删除。
    • 使用del语句时必须指定字典名和需要删除的键
    遍历键值对
    user_0 = {'username': 'efermi','first': 'enrico','last': 'fermi',
    }for key, value in user_0.items():print(f"\nKey: {key}")print(f"Value: {value}")
    for key in user_0.keys():print(f"\nKey: {key}")
    • item()方法是返回一个键值对列表
    • keys()方法是返回键值对中的键(key)
    顺序遍历
    favorite_languages = {'jen': 'python','zhao': 'c','yu': 'ruby','shi': 'java',
    }
    for name in sorted(favorite_languages.keys()):#反过来,如果想只遍历值的话就把keys改成values就可以print(f"{name.title()}, thanks for taking the poll")
    
    • value可以用[]来存储多个元素,然后在遍历到value对应的key时使用for循环进行遍历多元素的value值
    遍历去重
    favorite_languages = {'jen': 'python','zhao': 'c','yu': 'java','shi': 'java',
    }
    for language in set(favorite_languages.values()):print(language.title())
    
    • 这里用set()函数来进行提取元素
    字典列表
    aliens = []
    for alien in range(30):new_alien = {'color': 'green','point': 5,'speed': 'slow',}aliens.append(new_alien)
    for alien in aliens[:20]:print(alien)
    
    • range(30)函数返回一个数字序列,告诉py需要循环多少次
  11. 输入 input
    message = input("请输入一段话:")
    print(message)age = input("请输入年龄:")
    age = int(age)
    print(age)
    print(age>18)
    
    • input()函数可以在括号中输入提示语句,让用户知道自己需要输入什么
    • 函数在接受一个参数后可以直接向message进行赋值
    • 返回的结果一般为字符串
    • 如果需要int类型的数字,需要int()函数进行转换
  12. while
    num = 1
    while num <= 100:print(num)num += 1
    
    • python的底层逻辑决定了其自身不具有自增 ‘i++’ 这中操作

    • break是结束while这个大循环

    • continue是结束while中的小循环,然后返回查看是否符合条件

    • num = 0
      while num < 10:num += 1if num % 2 == 0:continueprint(num)
      
  13. 函数定义
    def greet_user(user_name):"""显示简单的问候语"""print(f"Hello!{user_name}")greet_user('zhaoysuhi')
    
  14. 禁止函数修改列表

    函数中可以对主程序中传过来的列表进行永久性修改,但可以用传递副本的方法对主程序中的列表进行修改保护

    function_name(list_name[:])
    
    • 要将列表的副本传递给函数,可像上述代码一样
    • 虽然可以使用副本,但除非必做,否则还是应该将原始列表传递给函数。因为让函数使用现成的列表可以节省时间和内存创建副本,从而提高效率
  15. 传递任意数量的实参
    def make_pizza(size, *toppings):"""打印顾客点的所有配料"""print(f"Make a {size}-inch pizza with the following toppings")make_pizza(16, 'pepperoni')
    make_pizza(12, 'mushrooms','green peppers','extra cheese')
    
    • 形参名*toppings中的星号是让py创建一个名位toppings的元组,该元祖包含函数收到的所有值
    • 如果要让函数接受不同类型的实参,必须在函数定义中将接受任意数量的实参的形参(*toppings)放在最后面
    接受任意数量的关键字实参
    def build_profile(first, last, **user_info):"""创建一个字典,其中包含我们知道的有关用户的一切"""user_info['first_name'] = firstuser_info['last_name'] = lastreturn user_infouser_profile = build_profile('albert', 'einstein',location='princeton',field='physics')
    
    • 形参**user_info中的两个星号是让python创建一个名为user_info的字典,该字典包含了函数收到的所有的键值对
  16. 用as给导入的函数指定别名
    from pizza import make_pizza as mp
    mp(16, 'pepperoni')
    mp(20, 'mushrooms', 'green peppers', 'extra cheese')
    
    • 不仅可以给导入的函数进行别名,如果导入的是模块也可以用as取别名
  17. __init__(self, ...)方法
    class Dog:"""一次模拟小狗的简单尝试"""def __int__(self, name, age):"""初始化属性name和age"""self.name = nameself.age = agedef sit(self):"""模拟小猴收到命令时坐下"""print(f"{self.name} is now sitting")def roll_over(self):"""模拟小狗收到命令时打滚"""print(f"{self.name} rolled over!")# 创建一个Person对象,并为该对象添加一个名字属性
    person = Person("John Doe")
    print(person.name) # 输出: John Doe
    

    ​ 此方法是python中的一类特殊方法,也成构造函数,Java中同样有此类函数。当创建一个类的实例时,此方法会自动调用。

    它的主要作用还初始化实例中的属性,如上述代码中的name和age两个属性,在主程序对Dog这个类进行实例时就可以直接将参数传过来进行初始化

    ​ 初始化语句可以在创建对象时为对象的属性设置初始值,从而使得代码更加简洁,方便维护。

    ​ 其中self参数是必须的,它代表了创建的对象本身,在方法内部可以通过self来引用对象的属性和方法。

    __init__方法的多态特性
    class Person:def __init__(self, name, age):self.name = nameself.age = ageclass Student(Person):def __init__(self, name, age, major):Person.__init__(self, name, age)self.major = major
    

    ​ 此方法也支持多态的特性,即子类可以通过重写此方法来覆盖父类的方法,以实现不同的初始化行为。

    super

    super是python中的内置函数,可以在继承关系中访问父类的属性。

    class ParentClass:def __init__(self, value1, value2):self.value1 = value1self.value2 = value2class ChildClass(ParentClass):def __init__(self, value1, value2, value3):super().__init__(value1, value2)self.value3 = value3
    
    • 这个super跟上述的多态举例不太一样,这个在调用父类的init方法时不需要再写self
    init注意⚠️
    • 方法在对象创建时自动调用,无需手动调用
    • 方法可以接收任意数量的参数,但需要遵循特定的参数签名
    • 在方法中必须给对象的每个属性进行赋值,否则该对象将不完整,不能正常工作
    • 尽量避免在初始化过程中产生太多计算,会影响程序性能
  18. 导入
    • 在进行跨文件导入时,如果导入的是一个类,即使文件中只有一个类也可以用 from 文件名 import 类 这样的方式进行导入

    • 也可以将整个文件进行导入,但需要在后续使用过程中进行 文件名.类 的方式进行使用

    • 如果导入的文件中只有方法也可以直接用 import 文件名 这样的方式进行简单导入

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

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

相关文章

数据库数据恢复—Oracle报错“需要更多的恢复来保持一致性”的数据恢复案例

Oracle数据库故障&检测&#xff1a; 打开oracle数据库报错“system01.dbf需要更多的恢复来保持一致性&#xff0c;数据库无法打开”。 数据库没有备份&#xff0c;无法通过备份去恢复数据库。用户方联系北亚企安数据恢复中心并提供Oracle_Home目录中的所有文件&#xff0c;…

大小端字节序 和 内存高低地址顺序

目录 1. 大小端字节序 1.1 什么是大小端字节序&#xff1f; 1.2 为什么有大小端字节序? 1.3 习题&#xff1a;用程序结果判断大端小端 2. 各种易混淆的高低地址顺序 2.1 监视窗口的地址表示【计算机标准展示方式】 2.2 横向地址表示 2.3 一个字节 与 多个字节 的地址…

C语言 | Leetcode C语言题解之第416题分割等和子集

题目&#xff1a; 题解&#xff1a; bool canPartition(int* nums, int numsSize) {if (numsSize < 2) {return false;}int sum 0, maxNum 0;for (int i 0; i < numsSize; i) {sum nums[i];maxNum fmax(maxNum, nums[i]);}if (sum & 1) {return false;}int tar…

《程序猿之设计模式实战 · 适配器模式》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

springboot文件上传+拦截器

springboot文件上传拦截器 文章目录 springboot文件上传拦截器1.静态资源访问静态目录&#xff1a; 2.文件上传文件上传配置文件书写文件上传代码 3.拦截器1.初始化拦截器2.初始化配置文件 1.静态资源访问 静态目录&#xff1a; 这里的static就是spring boot默认存放静态资源的…

ZYNQ FPGA自学笔记~操作PLL

一 时钟缓冲器、管理和路由 垂直时钟中心&#xff08;clock backbone&#xff09;将设备分为相邻的左侧和右侧区域&#xff0c;水平中心线将设备分为顶部和底部两侧。clock backbone中的资源镜像到水平相邻区域的两侧&#xff0c;从而将某些时钟资源扩展到水平相邻区域。BUFG不…

考研数据结构——C语言实现小顶堆

数组初始化&#xff1a; 首先&#xff0c;我们有一个整数数组arr&#xff0c;里面包含了一系列需要排序的数字。数组的长度n是通过对数组arr的总字节大小除以单个元素的字节大小得到的。 小顶堆调整函数&#xff1a; adjustHeapMin函数的作用是将数组中的元素从某个节点向下调整…

[001-02-001].第2节:java开发环境搭建

4.1.书籍推荐&#xff1a; 4.2.人机交互方式 1.图形化界面(Graphical User Interface GUI)这种方式简单直观&#xff0c;使用者易于接受&#xff0c;容易上手操作2.命令行方式(Command Line Interface CLI)&#xff1a;需要有一个控制台&#xff0c;输入特定的指令&#xff0c…

[数据结构]无头单向非循环链表的实现与应用

文章目录 一、引言二、线性表的基本概念1、线性表是什么2、链表与顺序表的区别3、无头单向非循环链表 三、无头单向非循环链表的实现1、结构体定义2、初始化3、销毁4、显示5、增删查改 四、分析无头单向非循环链表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引…

Frontiers出版社系列SCISSCI合集

【SciencePub学术】本期&#xff0c;小编根据WOS数据库&#xff0c;整理了一下Frontiers出版社系列的SCI&SSCI合集&#xff0c;以供各位学者投稿参考&#xff01; 来源&#xff1a;WOS数据库 Frontiers系列期刊中&#xff0c;Frontiers in Immunology以其5.7分的影响因子位…

第十四届蓝桥杯嵌入式国赛

一. 前言 本篇博客主要讲述十四届蓝桥杯嵌入式的国赛题目&#xff0c;包括STM32CubeMx的相关配置以及相关功能实现代码以及我在做题过程中所遇到的一些问题和总结收获。如果有兴趣的伙伴还可以去做做其它届的真题&#xff0c;可去 蓝桥云课 上搜索历届真题即可。 二. 题目概述 …

每日一练:二叉树的层序遍历

102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 一、题目要求 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,n…

合宙LuatOS应用,与时间相关那些事

合宙嵌入式操作系统LuatOS——在蜂窝物联网模组上推出开源二次开发框架&#xff0c;功能齐全性能稳定&#xff0c;可大幅度降低用户的研发成本和研发周期。 在LuatOS中&#xff0c;获取时间函数用得最多的就是os.time()函数了。接下来&#xff0c;我会讲一些与这个函数以及其他…

c++924

2 #include <iostream> #include <cstring>using namespace std;class MyString { private:char *str; // 记录C风格的字符串int size; // 记录字符串的实际长度public:// 定义无参构造MyString() : size(0) {str new char[1];str[0] \0;cou…

中秋节特别游戏:给玉兔投喂月饼

&#x1f5bc;️ 效果展示 &#x1f4dc; 游戏背景 在中秋这个充满诗意的节日里&#xff0c;玉兔因为贪玩被赶下人间。在这个温柔的夜晚&#xff0c;我们希望通过一个小游戏&#xff0c;让玉兔感受到人间的温暖和关怀。&#x1f430;&#x1f319; &#x1f3ae; 游戏设计 人…

5、论文阅读:深水下的图像增强

深水下的图像增强 前言介绍贡献UWCNN介绍网络架构残差Residuals块 Blocks网络层密集串联网络深度减少边界伪影网络损失Loss后处理前言 水下场景中,与波长相关的光吸收和散射会降低图像的可见度,导致对比度低和色偏失真。为了解决这个问题,我们提出了一种基于卷积神经网络的…

伊犁云计算22-1 apache 安装rhel8

1 局域网网络必须通 2 yum 必须搭建成功 3 apache 必须安装 开干 要用su 用户来访问 一看httpd 组件安装完毕 到这里就是测试成功了 如何修改主页的目录 网站目录默认保存在/var/WWW/HTML 我希望改变/home/www 122 127 167 行要改

打造灵活DateTimePicker日期时间选择器组件:轻松实现时间的独立清除功能

element ui中日期和时间选择器&#xff08;DateTimePicker&#xff09;是一个常见且重要的组件。它允许用户轻松地选择日期和时间&#xff0c;极大地提升了用户体验。然而&#xff0c;在某些场景下&#xff0c;用户可能需要更细粒度的控制&#xff0c;例如单独清除已选择的时间…

Swagger 概念和使用以及遇到的问题

前言 接口文档对于前后端开发人员都十分重要。尤其近几年流行前后端分离后接口文档又变 成重中之重。接口文档固然重要,但是由于项目周期等原因后端人员经常出现无法及时更新&#xff0c; 导致前端人员抱怨接口文档和实际情况不一致。 很多人员会抱怨别人写的接口文档不…

Cassandra 5.0 Spring Boot 3.3 CRUD

概览 因AI要使用到向量存储&#xff0c;JanusGraph也使用到Cassandra 卸载先前版本 docker stop cassandra && docker remove cassandra && rm -rf cassandra/运行Cassandra容器 docker run \--name cassandra \--hostname cassandra \-p 9042:9042 \--pri…