python自学笔记

news2024/9/23 22:29:32

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 += 1
          if num % 2 == 0:
              continue
      
          print(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'] = first
        user_info['last_name'] = last
        return user_info
    
    user_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 = name
            self.age = age
    
        def 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 = name
            self.age = age
            
    class 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 = value1
            self.value2 = value2
     
    class 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.coloradmin.cn/o/2158621.html

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

相关文章

【已解决】ElementPlus 的 el-menu 组件如何用 js 控制展开某个子菜单,并在其他组件中控制使用呢?

文章目录 需求几次探索官网寻找线索&#xff08;解决办法&#xff09; 需求 我如何用代码来实现 ElementPlus 的菜单的展开和收缩呢&#xff1f; 几次探索 尝试通过找到节点之后&#xff0c;使用 click 事件&#xff0c;失败了 // 伪代码如下 const handleFindNodeAndClick …

【数据结构】散列(哈希)表简单介绍

散列表也叫做哈希表&#xff08;Hash table&#xff09;&#xff0c;散列表通过关键码和存储地址建立唯一确定的映射关系&#xff0c;能够快速查找到对应的元素&#xff0c;排序算法中的计数排序就是一种利用哈希进行排序的算法。 一、散列表的概念 散列表&#xff08;Hash ta…

【优选算法之前缀和】No.6--- 经典前缀和算法

文章目录 前言一、前缀和例题模板&#xff1a;1.1 【模板】前缀和1.2 【模板】⼆维前缀和1.3 寻找数组的中⼼下标1.4 除⾃⾝以外数组的乘积1.5 和为 K 的⼦数组1.6 和可被 K 整除的⼦数组1.7 连续数组1.8 矩阵区域和 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f6…

提升晶振电路抗扰性:优化方案解析

在现代电子设备中&#xff0c;晶振作为提供稳定时钟信号的核心组件&#xff0c;其稳定性对整个系统的运行至关重要。然而&#xff0c;电路抗扰性不良往往会导致晶振失效&#xff0c;进而影响设备的整体性能。晶发电子针对这一问题&#xff0c;提出了以下关于晶振电路抗扰性及优…

【C++】拆分详解 - string类

文章目录 一、为什么学习string类&#xff1f;二、标准库中的string类  1. 定义  2. 常用接口说明     2.1 构造     2.2 容量操作     2.3 访问及遍历操作     2.4 修改操作     2.5 非成员函数 三、OJ练习自测  [1. 仅仅反转字母](https://leetcod…

9.23 My_string.cpp

my_string.h #ifndef MY_STRING_H #define MY_STRING_H#include <iostream> #include <cstring>using namespace std;class My_string { private:char *ptr; //指向字符数组的指针int size; //字符串的最大容量int len; //字符串当前…

华为三折叠一拆,苹果脸被打肿了!

文&#xff5c;琥珀食酒社 作者 | 随风 哎呀 苹果这次脸真是被华为狠狠打肿了 那些高高兴兴买iPhone 16的 东西一收到&#xff0c;脸马上就绿了啊 各种意想不到的问题啊 拆开手机后发现有两处掉漆咱就不说了 第一次滑动iPhone 16 Pro屏幕有响应 再滑动就没有响应了咱也…

【27】C++项目练习

练习1 题目如下 代码如下 .h #pragma once #include <string> using namespace std;class Toy { public:Toy();Toy(string name,int price,string place);~Toy();string getName() const;int getPrice() const;string getPlace() const;void changePrice(float count)…

自己开发的windows服务在虚拟机上不能正常启用

最近开发了个数据采集系统&#xff0c;在我本机上发布、安装是没有问题的&#xff1b;但是在虚拟机上进行安装部署的时候&#xff0c;反馈的错误码是1053&#xff0c;服务不能正常启动。 网上搜索可能的原因&#xff0c;如图&#xff1a; 能引起1053的问题比较多&#xff0c;首…

springboot实战学习笔记(4)(Spring Validation参数校验框架、全局异常处理器)

接着上篇博客学习。上篇博客是已经基本完成用户模块的注册接口的开发。springboot实战学习笔记&#xff08;3&#xff09;(Lombok插件、postman测试工具、MD5加密算法、post请求、接口文档、注解、如何在IDEA中设置层级显示包结构、显示接口中的方法)-CSDN博客本篇博客主要是关…

最新版Visual Studio安装教程(超详细,新手必看)

一、官网下载 这里奉上Visual Studio官方下载地址&#xff1a; https://visualstudio.microsoft.com/zh-hans/downloads/https://visualstudio.microsoft.com/zh-hans/downloads/ 对于我们学习来说&#xff0c;下载第一个社区免费版即可&#xff0c;点击下载。 下载完成以后是…

Kubernetes Pod调度基础(kubernetes)

实验环境依旧是k8s快照&#xff0c;拉取本次实验所需的镜像文件&#xff1b; 然后在master节点上传已经编写好的yaml文件&#xff1b; 然后同步会话&#xff0c;导入镜像&#xff1b; pod控制器&#xff1a; 标签选择器--》标签&#xff1a; 标签&#xff1a; 在Kubernetes&…

还在用windows自带录屏?试试这三款录屏工具

作为一名办公室文员&#xff0c;我经常需要录制电脑屏幕来制作教程或者记录工作流程。在众多的录屏工具中&#xff0c;我尝试了四款不同的录屏工具&#xff0c;包括Windows自带录屏工具。今天&#xff0c;我就来跟大家分享一下我的使用体验&#xff0c;希望能帮助到和我有同样需…

利用代码,玩转腾讯云脱敏服务:Java、Python、PHP案例集

腾讯云数据脱敏服务-数据管理的优势是什么&#xff1f; 腾讯云数据脱敏服务-数据管理 提供了一种高效且灵活的方式来保护敏感数据。其核心优势在于可以在数据处理和传输过程中自动化地执行数据脱敏操作。无论是脱敏信用卡号、身份证号还是其他个人信息&#xff0c;该服务都能精…

Games101笔记-二维Transform变换(二)

1、什么是Transform Transform就是通过一个矩阵&#xff0c;进行缩放、旋转、平移等变换 2、缩放、旋转、切变、平移等基础变换 缩放变换&#xff1a; 反射变换&#xff1a; 切变&#xff1a; 绕原点旋转&#xff1a; 以上都是线性变换&#xff1a; 平移变换&#xf…

线程同步:消费者模型(非常重要的模型)

一.线程同步的概念 线程同步&#xff1a;是指在互斥的基础上&#xff0c;通过其它机制实现访问者对 资源的有序访问。条件变量&#xff1a;线程库提供的专门针对线程同步的机制线程同步比较典型的应用场合就是 生产者与消费者 二、生产者与消费者模型原理 在这个模型中&…

中文文本分词-技术实现

当做语音&文本相关的技术时&#xff0c;经常会涉及到文本的分词实现。以下是对中文的文本简单实现。 一、单个中文句子的分词 import jiebatext_ "我爱我的祖国&#xff01;" # 精确模式 seg_list jieba.cut(text_, cut_allFalse) print("精确模式: &qu…

【51实物与仿真】基于51单片机设计的波形/函数发生器(正弦波、锯齿波、三角波、矩形波,设定频率步进值,改变振幅,LCD显示)——文末完整资料链接

基于51单片机设计的波形函数发生器 演示视频: 功能简介: 1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机。 2.LCD1602液晶显示波形种类和频率值(10-100HZ)。 3.按键设置波形种类和设定频率步进值。 4.电位器器改变振幅(0V-3.5V稳定)。 5…

医院预约|基于springBoot的医院预约挂号系统设计与实现(附项目源码+论文+数据库)

私信或留言即免费送开题报告和任务书&#xff08;可指定任意题目&#xff09; 目录 一、摘要 二、相关技术 三、系统设计 四、数据库设计 五、核心代码 六、论文参考 七、源码获取 一、摘要 近年来&#xff0c;信息化管理行业的不断兴起&#xff0c;使得人们的日…

集合根据上下级关系转树结构

1、创建实体对象 public class TreeNode {private String id;private String pid;private String name;private List<TreeNode> children;public TreeNode(String id,String pid,String name){this.id id;this.pid pid;this.name name;}public String getId() {retur…