02 - python入门篇

news2024/10/7 16:20:44

1. python入门

1.1 认识标识符

  • 标识符是由字母、数字和下划线组成
  • 标识符的首字符必须是字母或下划线
  • 标识符区分大小写

1.2 认识保留字

简单来说就是python把一些字符串在系统中用过了,你后面定义就不能使用人家已经使用过的了。

保留字有哪些

import keyword
print(keyword.kwlist)

输出

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

1.3 注释的使用

使用语言描述代码的业务逻辑,增强程序的可读性

单行注释

# 这是单行注释

多行注释

'''
这是单引号的多行注释
这是单引号的多行注释
这是单引号的多行注释
'''

"""
这是双引号的多行注释
这是双引号的多行注释
这是双引号的多行注释
"""

1.4 print输出打印

print默认是换行打印

a = 1
b = 1

# 换行显示
print(a)
print(b)

# 下面是不换行显示
print(a, end="")
print(b, end="")

1.5 包引入

写法和vue相似

# 将整个模块进行引入
import xxxModule

# 将模块中某个函数进行引入
from xxxModule import xxxFunction

# 将模块中多个函数进行引入
from xxxModule import xxxFunction,yyyFunction,zzzFunction

2. 四种运算符

2.1 算术运算符

2.2 比较运算符

2.3 逻辑运算法

2.4 赋值运算符

2.5 运算符的优先级

3. 六大数据类型

3.1 Number(数字)

  • int(整型):不带小数点的正数或负数。
  • float(浮点型):由正数部分与小数部分组成,可以使用科学计数法表示。
  • complex(复数):由实数部分和虚数部分构成,可以使用 a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。

3.2 String(字符串)

python中的字符串用单引号或者双引号括起来,中间使用反斜杠进行特殊字符的转义。

字符串格式化

name = '李嘉图'

# 第一种格式法
print('我的名字是:%s' % (name))

# 第二种格式法(推荐)
print(f'我的名字是: {name}')

3.3 Tuple(元组)

在()中添加元素,元素用逗号分隔,元素可以是不同的类型。

tup = ('李嘉图', 18, '男')

print(tup)

3.4 List(列表)

在 [ ] 中添加元素,元素用逗号分隔,元素可以是不同的类型,列表元素可变。可以当成java的数组用。

a = ['李嘉图' , 1, 2, 3]
print(a) 
a[0] = 9
print(a) 

# 追加列表
a.append(6)
print(a) 

# 删除列表的的元素
del a[0]
print(a) 

3.5 Dictionary(字典)

相当于java中的map,key=>value的形式。

d = {key1 : value1, key2 : value2, key3 : value3 }

可以用来存放对象

dict = {'name': '李嘉图', 'age': 18}

#遍历键
for key in dict.keys():
    print(key)
"""
name
age
"""

# 遍历值
for value in dict.values():
    print(value)
"""
李嘉图
18
"""

3.6 Set(集合)

在 { } 中添加元素,元素之间用逗号分隔,一个无序不重复的元素序列。

两种创建方式

set1 = {'李嘉图', 18, 18}
print(set1) # {'李嘉图', 18} ;元素不重复只显示一个18

set2 = set('abcd')
print(set2) # {'c', 'b', 'd', 'a'} ; 元素没有顺序

4. 基础语句

4.1 条件语句 (if、elif、else)

if 判断条件1:
    执行语句1...
elif 判断条件2:
    执行语句2...
elif 判断条件3:
    执行语句3...
else:
    执行语句4...

4.2 循环语句(while、while...else)

while 判断条件:
    执行语句...
else:
    执行语句...

4.3 循环语句(for、for...else)

# <variable>:存储元素的变量 ;<sequence>:遍历的对象
for <variable> in <sequence>:
    执行语句
--------------------------
for <variable> in <sequence>:
    执行语句1
else:
    执行语句2

4.4 break、continue语句

break: 跳出循环体,不在执行循环

continue: 跳出本轮循环,继续执行下面的循环

4.5 pass语句

# 不做任何事情,一般用做占位语句,保持程序结构的完整性
while True:
    pass

5. 函数

把具有独立功能的代码块封装起来,在需要的时候调用,提高编写的效率和代码的重用。

5.1 函数的定义

def 函数名():
    '''
    函数注释
    '''
    封装的函数代码......

5.2 函数的调用

通过 函数名() 调用函数

函数必须先定义,后使用

示例

name = "李嘉图"

def say_hello():
    '''
    这是一个打招呼的函数
    '''
    print("hello")
    print("吃饭了吗?")
    print("最近怎么样")

print(name)
say_hello()

5.3 带参数的函数

  • 形参:定义函数时,小括号中的参数,是用来接收参数用的,在函数内部作为变量使用。
  • 实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部用的。
  • 返回值:在函数执行结束后,告诉调用者执行的结果。
def sum_2_num(num1, num2):
    """
    对两个数字的求和
    """
    return num1 + num2

# 调用函数,并使用 result 变量接收计算结果
result = sum_2_num(10, 20)

print("计算结果是 %d" % result)

5.4 使用模块中定义好的函数

  • 每一个扩展名为 py 结尾的代码文件是一个模块
  • 如果要使用这个模块中的函数,使用 import xxx.py 导入即可

5.5 py代码的编译

python代码的解释分为两个步骤:

        1. 先将py文件编译成二进制字节码(pyc)

        2. 再将字节码处理成CPU能识别的机器码

运行过一次代码后,在下一次运行时,机器会先判断有没有修改过源代码,没有修改的话,会直接加载上一次编译好的.pyc文件,跳过编译这个步骤;如果修改了源代码,则会重新编译生成.pyc文件。

5.6 函数递归

函数调用自身的编程技巧称为递归

示例:计算数字的累加

def sum_numbers(num):

    if num == 1:
        return 1
    
    temp = sum_numbers(num - 1)

    # 函数内部的核心算法就是 两个数字的相加
    return num + temp

print(sum_numbers(10))

6. 变量须知

6.1 引用

在python中,变量和数据是分开存储的,数据保存在内存中的某个位置,变量保存着数据在内存中的地址,变量中记录数据的地址就叫做引用

如果变量已经被定义,当给一个变量赋值的时候,本质上是修改了数据的引用。

6.2 局部变量和全局变量

局部变量

  • 局部变量是在函数内部定义的变量,只能在函数内部使用
  • 函数执行结束后,函数内部的局部变量,会被系统回收
  • 不同的函数,可以定义相同名字的局部变量,彼此互不影响

全局变量

  • 全局变量是在函数外部定义的变量,所有函数内部都可以使用这个变量
  • 同名时,函数执行,先找函数里面的局部变量,如果有则直接使用,没有就找函数外部的全局变量
  • 全局变量前可以加g_或者gl_,与局部变量进行区分

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

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

相关文章

记录一次k8s集群镜像恢复到harbor的过程

之前由于harbor的存储空间不够了&#xff0c;同事干掉了好多镜像&#xff0c;结果把现网生产的镜像也搞掉了。进行了找回操作&#xff0c;这里做下记录。 环境是k8s集群&#xff0c;容器引擎用的containerd。 最初发现这个问题是在增加节点的时候&#xff0c;发现有的节点主机…

蓝桥杯备战——11.NE555测频

1.分析原理图 我们可以看到&#xff0c;上图就是一个NE555构建的方波发生电路&#xff0c;输出方波频率1.44/2(R8Rb3)C,如果有不懂NE555内部结构&#xff0c;工作原理的&#xff0c;可以到B站学习。实在不懂仿真也行&#xff0c;比如我下面就是仿真结果&#xff1a; 然后就是下…

洛谷 P1803 凌乱的yyy / 线段覆盖

本聪明帅气文武双全的史上无敌代码猿来发题解了. 题目背景 快 noip 了&#xff0c;yyy 很紧张&#xff01; 题目描述 现在各大 oj 上有 n 个比赛&#xff0c;每个比赛的开始、结束的时间点是知道的。 yyy 认为&#xff0c;参加越多的比赛&#xff0c;noip 就能考的越好&…

企业架构TOGAF?

企业架构 企业架构&#xff08;Enterprise architecture&#xff09;是指整个公司或企业中软件和其他技术的整体视图和方法。 通常&#xff0c;企业架构不仅仅是组织各种内部基础设施的结构。相反&#xff0c;我们的目标是通过以正确的方式分析、设计、规划和实施正确的技术&…

数据结构—动态查找

动态查找介绍 1. 动态查找的引入&#xff1a;当查找表以线性表的形式组织时&#xff0c;若对查找表进行插入、删除或排序操作&#xff0c;就必须移动大量的记录&#xff0c;当记录数很多时&#xff0c;这种移动的代价很大。 2. 动态查找表的设计思想&#xff1a;表结构本身是…

ffmpeg合成mp3音频,解决音频属性不一致问题

1. 需求&#xff0c;amr转成mp3&#xff0c;再将此mp3和其他mp3合成 2. 问题&#xff1a;拼接后的第一段音频可以播放&#xff0c;第二段自动跳过&#xff0c;无法播放。 3. 解决&#xff1a; 3.1 查看各文件属性 # 查看amr转为mp3文件的属性&#xff1a;ffprobe 文件名&am…

Java基础 反射详解

目录 简介 反射的基本使用 获取 Class 对象的四种方式 基本使用示例 常用方法 生产中的常用方式 获取注解 SpringIoc容器的制作 反射 抽象工厂模式 双亲委派 反射缺点 前言-与正文无关 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍…

认识文件和目录

单用户&多用户操作系统(科普) 单用户操作系统:指一台计算机在同一时间 只能由一个用户 使用,一个用户独自享用系统的全部硬件和软件资源Windows XP 之前的版本都是单用户操作系统 多用户操作系统:指一台计算机在同一时间可以由 多个用户 使用,多个用户共同享用系统的全…

syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘

问题 使用 go-zero时&#xff0c;执行api命令报错user.api 55:9 syntax error: expected : | IDENT | INT, got (。报错信息提醒文件55行有错&#xff0c;但是源文件55行没有问题。 解决 这里我的goctl版本是1.6.1 执行如下命令&#xff0c;将版本改为1.6.0&#xff0c;即可解…

Maven的安装以及配置(超级详细版)

前言 至于什么是Maven&#xff0c;大家可以理解为之前的Vue一样&#xff0c;也是通过操控对象映射来使用的 他内部还有很多的插件用于实现对应的功能&#xff0c;例如打包插件&#xff0c;或是测试 maven下载 Maven – Download Apache Maven apache下的开源项目&#xff0…

基于C/C++的MFC的IDC_MFCEDITBROWSE2控件不显示ico问题记录

打开资源文件 *.rc文件 &#xff0c;在最上方添加 #if !defined(_AFXDLL) #include "afxribbon.rc" // MFC ribbon and control bar resources #endif 如下图所示&#xff1a;

SpringBoot security 安全认证(二)——登录拦截器

本节内容&#xff1a;实现登录拦截器&#xff0c;除了登录接口之外所有接口访问都要携带Token&#xff0c;并且对Token合法性进行验证&#xff0c;实现登录状态的保持。 核心内容&#xff1a; 1、要实现登录拦截器&#xff0c;从Request请求中获取token&#xff0c;从缓存中获…

liunx服务器下vim无法:wq解决方案

当你vim某一个文件是&#xff0c;由于其他人在操作&#xff0c;或者上次操作中断&#xff0c;造成的 解决方案&#xff0c;不要&#xff0c;vim -r /etc/****&#xff0c;不然你会得到 正确方案 然后在&#xff0c;直接sudo vim /ect/xxx&#xff0c;还出现第一幅图就直接选…

QML自定义ComboBox组件,支持动态筛选

QtQuick.Controls提供了ComboBox组件&#xff0c;该组件能够满足日常的下拉选择框的需求&#xff0c;但当需要用户在ComboBox中通过输入关键字进行自动匹配时&#xff0c;原生的组件虽然提供了editable属性用于输入关键字&#xff0c;但是匹配内容不弹出下拉框&#xff0c;无法…

winform冒泡排序和快速排序实现

winform冒泡排序和快速排序实现 冒泡排序和快速排序是两种常用的排序算法&#xff0c;可以在Winform程序中实现以提高排序效率。冒泡排序是一种简单但效率较低的排序算法&#xff0c;它通过相邻元素间的比较和交换来实现排序。它的基本思想是每一轮比较相邻两个元素的大小&…

浅析Redis③:命令处理之数据返回Client(下)

写在前面 Redis作为我们日常工作中最常使用的缓存数据库&#xff0c;其重要性不言而喻&#xff0c;作为普通开发者&#xff0c;我们在日常开发中使用Redis&#xff0c;主要聚焦于Redis的基层数据结构的命令使用&#xff0c;很少会有人对Redis的内部实现机制进行了解&#xff0c…

YOLOv8-Segment C++

YOLOv8-Segment C https://github.com/triple-Mu/YOLOv8-TensorRT 这张图像是运行yolov8-seg程序得到的结果图&#xff0c;首先是检测到了person、bus及skateboard(这个是检测错误&#xff0c;将鞋及其影子检测成了滑板&#xff0c;偶尔存在错误也属正常)&#xff0c;然后用方…

4D毫米波雷达——ADCNet 原始雷达数据 目标检测与可行驶区域分割

前言 本文介绍使用4D毫米波雷达&#xff0c;基于原始雷达数据&#xff0c;实现目标检测与可行驶区域分割&#xff0c;它是来自2023-12的论文。 会讲解论文整体思路、输入分析、模型框架、设计理念、损失函数等&#xff0c;还有结合代码进行分析。 论文地址&#xff1a;ADCNe…

Flink实时数仓同步:快照表实战详解

一、背景 在大数据领域&#xff0c;初始阶段业务数据通常被存储于关系型数据库&#xff0c;如MySQL。然而&#xff0c;为满足日常分析和报表等需求&#xff0c;大数据平台采用多种同步方式&#xff0c;以适应这些业务数据的不同存储需求。这些同步存储方式包括离线仓库和实时仓…

nvm 工具使用介绍

目录 1.背景2.nvm介绍3.下载和安装4.配置环境变量5.配置淘宝镜像5.1 方式一&#xff1a;直接执行命令5.2 方式二&#xff1a;修改配置文件 6.常用命令7.总结 下载地址&#xff1a; https://github.com/coreybutler/nvm-windows/releases 1.背景 在工作中&#xff0c;我们可能…