当前位置: 首页 > news >正文

python系统学习Day2

section3 python Foudamentals

part one:data types and variables

数据类型:整数、浮点数、字符串、布尔值、空值

#整型,没有大小限制
>>>9 / 3 #3.0
>>>10 // 3 #3  地板除
>>>10 % 3 #1 取余#浮点型,没有大小限制,但超过一定范围表示为inf(无限大)
>>>print(2*100 == 2e2)  #True#字符串
>>>print('I\'m \"OK\"!') #I'm "OK"!
>>>print(r'\\\n\\') #\\\n\\    ##r默认字符串内部不转义
>>>print('''ready?
...line2
...line3''')        #多行输入保留原换行符用三个单引号#布尔值
>>>True and False #False
>>>not 1 > 2 #True#空值用None表示

此外还有:列表、字典等。

变量在计算机中可以是任意数据类型,在程序中用变量名表示,规范编程要遵循一定的命名规则。

变量是一个名称,指向内存中的某个地址,地址中存储了一个常量,也就是变量的值。

>>>a = 'ABC'
>>>b = a
>>>a = 'XYZ'
>>>print(b)
ABC
#理解过程

在这里插入图片描述

常量通常用大写字母表示,但在python中没有确保常量名称代表的值不会被修改的机制

part two:strings and encoding

字符串需要转化为01串存储在计算机中,字符串编码方式包括

  • ASCII(一字节)
  • GB2312(中文编码)
  • Unicode(二字节通用编码)
  • UTF-8(可变长通用编码,为了节省存储空间)

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或传输的时候,转化为UTF-8编码。

  • 例一:记事本使用Unicode编码,但txt类型的文件存储时使用的是UTF-8编码
  • 例二:服务器使用的是Unicode编码,但输出到浏览器的网页使用的是UTF-8编码

python3中,使用Unicode编码

>>>ord('A')     #获取字符的整数表示
65
>>>chr(66)     #把编码转化为对应的字符
'B'
>>>'\u4e2d\u6587    #中文也有编码
'中文'>>>'ABC'.encode('ascii')     #编码为指定的bytes
b'ABC'    #bytes数据用带 b 前缀的单引号或双引号表示
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'>>> b'ABC'.decode('ascii')    #bytes变为str
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')    #忽略错误部分
'中'>>>len(xxx)    #len计算str字符数、bytes字节数

格式化输出字符串有多种形式

# %格式化
>>>'Hello, %s' % 'python'
'Hello, python'
>>>'%2d - %02d' %(3, 1)
3 - 01
>>>'%.2f' %3.1415926
3.14
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'# format()格式化
>>>'Hello, {0}. This is {1:.1f}%'.format('小牛', 17.125)
'Hello, 小牛. This is 17.1%'# f-string格式化
>>> r = 2.5
>>> s = 3.14 * r ** 2
>>> print(f'The area of a circle with radius {r} is {s:.2f}')
The area of a circle with radius 2.5 is 19.62

part three:list and tumple

list列表,有序集合,可随时删改元素

>>>List = ['Bob', 35, 44.0]
>>>List[2]  
44.0
>>>list[-1]
44.0
>>>len(List)
3#插入删除
>>>List.append('Tom')  
>>>List
['Bob', 35, 44.0, 'Tom']
>>>List.insert(1, 'Mack')
>>>List
['Bob', 'Mack', 35, 44.0, 'Tom']
>>>List.pop()   #可添加参数指定位置,缺省默认为最后一个
['Bob', 'Mack', 35, 44.0]
# list元素可为不同类型,可嵌套

** tips about insert**

list使用insert(pos, val)插入值,由于list是可变对象,该函数返回值是None
写法L_1 = L.insert(x, y)返回的L_1是空值!!!

tumple元组与list类似,但一旦初始化就不能修改

>>>t = ()       #空元组
>>>t = (1,)     #一个元素的元组后面要加逗号
>>>t = (1, 3)   #多元素元组
>>>t = ('a', 'b', ['X', 'Y'])  #元组不可变,但固定指向列表,但列表内元素可变

part four:Conditional judgment

条件判断是计算机可以做自动化任务的关键能力之一

s = input('请输入你的年龄')
age = int(s)
if age >= 18:print('adult')
elif age >= 6:print('teenager')
else:print('kid')

tips about input

python3中input返回的永远是字符串类型,需要其它类型时用强制转换实现。

当条件判断有很多分支时,可以考虑使用模式匹配

age = 15match age:case x if x < 10:  #绑定到变量print(f'< 10 years old: {x}')case 10:print('10 years old.')case 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18:print('11~18 years old.')case 19:print('19 years old.')case _:    #其它情况print('not sure.')#匹配列表
args = ['gcc', 'hello.c', 'world.c']
# args = ['clean']
# args = ['gcc']match args:# 如果仅出现gcc,报错:case ['gcc']:print('gcc: missing source file(s).')# 出现gcc,且至少指定了一个文件:case ['gcc', file1, *files]:print('gcc compile: ' + file1 + ', ' + ', '.join(files))# 仅出现clean:case ['clean']:print('clean')case _:print('invalid command.')

part five:Loop

循环简化相似任务的操作流程

# 依次遍历list或tumple中元素
names = ['Bob', 'Tom', 'mack']
for name in names:print(name)
for x in range(101):print(x)# while循环
n = 10
while n > 0:print(n)

break\continue可以放在循环代码段中。break代表结束循环,continue表示跳过本轮循环。

part six:dict and set

dict字典以键值对形式存储数据,

d = {'first':3, 'second': 5, 'end':7}
print(d[first])  #3# 避免key不存在的错误
'first' in d  #Trued.get('second', -1)  #第二个参数表示key不存在时返回的值,默认为None#pop(key)用于删除

牢记,dict的key 必须是不可变对象

set集合用于表示无序不重复数据集

s = set([1, 2, 3, 4])  #创建set需要list作为输入s.add(x) #添加, 重复元素自动过滤
s.remove(x)  #删除
#set可以执行集合相关的操作,"&" "|"操作都可以 

tips about Immutable objects

对于不变对象来说,调用对象自身的任意方法,不会改变该对象自身的内容。事实上,这些方法会创建新的对象并返回,这样,就保证了不可变对象本身永远是不可变的。

相关文章:

python系统学习Day2

section3 python Foudamentals part one&#xff1a;data types and variables 数据类型&#xff1a;整数、浮点数、字符串、布尔值、空值 #整型&#xff0c;没有大小限制 >>>9 / 3 #3.0 >>>10 // 3 #3 地板除 >>>10 % 3 #1 取余#浮点型&#xff…...

学习笔记——ENM模拟

学习笔记——ENM模拟 文章目录 前言一、文献一1. 材料与方法1.1. 大致概念1.2. 生态模型的构建1.2.1. 数据来源&#xff1a;1.2.2. 数据处理&#xff1a;1.2.3. 模型参数优化&#xff1a; 1.3. 适生情况预测1.3.1. 预测模型构建1.3.2. 适生区划分 1.4. 模型的评估与验证 2. 结果…...

数值类型的运算方式总结

提纲1&#xff1a;常见的位运算使用场景 提纲2&#xff1a;整数类型运算时的类型溢出问题&#xff0c;产生原因以及解决办法 提纲3&#xff1a;浮点类型运算时的精度丢失问题&#xff0c;产生原因以及解决办法 数值类型&#xff08;6种&#xff09;分为&#xff1a; 整型&…...

【Redis快速入门】Redis三种集群搭建配置(主从集群、哨兵集群、分片集群)

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…...

[嵌入式系统-14]:常见实时嵌入式操作系统比较:RT-Thread、uC/OS-II和FreeRTOS、Linux

目录 一、实时嵌入式操作系统 1.1 概述 1.2 什么“实时” 1.3 什么是硬实时和软实时 1.4 什么是嵌入式 1.5 什么操作系统 二、常见重量级操作系统 三、常见轻量级嵌入式操作系统 3.1 概述 3.2 FreeRTOS 3.3 uC/OS-II 3.4 RT-Thread 3.5 RT-Thread、uC/OS-II、Free…...

基于AI Agent探讨:安全领域下的AI应用范式

先说观点&#xff1a;关于AI应用&#xff0c;通常都会聊准召。但在安全等模糊标准的场景下&#xff0c;事实上不存在准召的定义。因此&#xff0c;AI的目标应该是尽可能的“像人”。而想要评价有多“像人”&#xff0c;就先需要将人的工作数字化。而AI Agent是能够将数字化、自…...

Stable Diffusion 模型下载:ToonYou(平涂卡通)

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十...

机器学习:分类决策树(Python)

一、各种熵的计算 entropy_utils.py import numpy as np # 数值计算 import math # 标量数据的计算class EntropyUtils:"""决策树中各种熵的计算&#xff0c;包括信息熵、信息增益、信息增益率、基尼指数。统一要求&#xff1a;按照信息增益最大、信息增益率…...

红队打靶练习:HACK ME PLEASE: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.61.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.61.2 00:50:56:f0:df:20 …...

《VulnHub》GoldenEye:1

title: 《VulnHub》GoldenEye&#xff1a;1 date: 2024-02-16 14:53:49 updated: 2024-02-16 15:08:49 categories: WriteUp&#xff1a;Cyber-Range excerpt: 主机发现、目标信息扫描、源码 js 文件泄露敏感信息、hydra 爆破邮件服务&#xff08;pop3&#xff09;、邮件泄露敏…...

html的表格标签

html的表格标签 table标签:表示整个表格tr:表示表格的一行td:表示一个单元格th:表示表头单元格.会居中加粗thead:表格的头部区域 (注意和th区分,范围是比th要大的).tbody:表格得到主体区域. table包含tr , tr包含td或者th. 表格标签有一些属性&#xff0c;可以用于设置大小边…...

蓝桥杯(Web大学组)2022省赛真题:展开你的扇子

思路&#xff1a; transform-origin: center bottom;使盒子旋转时&#xff0c;以底部的中心为坐标原点&#xff08;题目已给出&#xff09; 对每个盒子使用transform: rotate();实现旋转 笔记&#xff1a; 设置悬浮旋转时&#xff0c; #box div:hover #item6{ } 为什…...

复习基础知识1

局部变量 写程序时&#xff0c;程序员经常会用到局部变量 汇编中寄存器、栈&#xff0c;可写区段、堆&#xff0c;函数的局部变量该存在哪里呢&#xff1f; 注意&#xff1a;局部变量有易失性 一旦函数返回&#xff0c;则所有局部变量会失效。 考虑到这种特性&#xff0c;人们…...

java8-用流收集数据-6

本章内容口用co1lectors类创建和使用收集器 口将数据流归约为一个值 口汇总:归约的特殊情况 数据分组和分区口 口 开发自己的自定义收集器 我们在前一章中学到&#xff0c;流可以用类似于数据库的操作帮助你处理集合。你可以把Java8的流看作花哨又懒惰的数据集迭代器。它们…...

[前端开发] JavaScript基础知识 [上]

下篇&#xff1a;JavaScript基础知识 [下] JavaScript基础知识 [上] 引言语句、标识符和变量JavaScript引入注释与输出数据类型运算符条件语句与循环语句 引言 JavaScript是一种广泛应用于网页开发的脚本语言&#xff0c;具有重要的前端开发和部分后端开发的应用。通过JavaSc…...

初识Qt | 从安装到编写Hello World程序

文章目录 1.前端开发简单分类2.Qt的简单介绍3.Qt的安装和环境配置4.创建简单的Qt项目 1.前端开发简单分类 前端开发&#xff0c;这里是一个广义的概念&#xff0c;不单指网页开发&#xff0c;它的常见分类 网页开发&#xff1a;前端开发的主要领域&#xff0c;使用HTML、CSS …...

机器学习:过拟合和欠拟合的介绍与解决方法

过拟合和欠拟合的表现和解决方法。 其实除了欠拟合和过拟合&#xff0c;还有一种是适度拟合&#xff0c;适度拟合就是我们模型训练想要达到的状态&#xff0c;不过适度拟合这个词平时真的好少见。 过拟合 过拟合的表现 模型在训练集上的表现非常好&#xff0c;但是在测试集…...

变分自编码器(VAE)PyTorch Lightning 实现

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…...

设备驱动开发_1

可加载模块如何工作的 主要内容 描述可加载模块优势使用模块命令效率使用和定义模块密钥和模块工作1 描述可加载模块优势 开发周期优势: 静态模块在/boot下的vmlinuz中,需要配置、编译、重启。 开发周期长。 LKM 不需要重启。 开发周期优于静态模块。 2 使用模块命令效率…...

C语言位域(Bit Fields)知识点精要解析

在C语言中&#xff0c;位域&#xff08;Bit Field&#xff09;是一种独特的数据结构特性&#xff0c;它允许程序员在结构体&#xff08;struct&#xff09;中定义成员变量&#xff0c;并精确指定其占用的位数。通过使用位域&#xff0c;我们可以更高效地利用存储空间&#xff0…...

AI行业的“隐形赛道”:AI伦理与合规人才缺口到底有多大

一、AI狂飙下的“隐形刚需”&#xff1a;被忽视的伦理与合规赛道当软件测试从业者还在为功能测试、性能测试的技术迭代焦头烂额时&#xff0c;AI行业的另一股暗流正汹涌袭来——伦理与合规人才的缺口&#xff0c;正成为制约AI产业可持续发展的隐形瓶颈。从ChatGPT引发生成式AI热…...

为什么顶尖纳米实验室已停用传统文献管理工具?NotebookLM私有知识中枢部署避坑清单(限内部研究员参考)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM纳米技术研究 NotebookLM 是 Google 推出的基于 AI 的研究协作者工具&#xff0c;其核心能力在于对用户上传的私有文档进行深度语义理解与上下文推理。在纳米技术这一高度跨学科、文献密集的研究领…...

Thanos剪枝算法:高效压缩大型语言模型的技术解析

1. 项目概述&#xff1a;Thanos剪枝算法解析在深度学习领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;的参数量已突破千亿级别&#xff0c;这对计算资源和内存提出了极高要求。模型剪枝技术通过移除神经网络中的冗余连接&#xff0c;能在保持模型性能的同时显著降低…...

【亲测免费】 PLC1200四路抢答器程序:打造高效公平的抢答体验

PLC1200四路抢答器程序&#xff1a;打造高效公平的抢答体验 【下载地址】PLC1200四路抢答器程序 本仓库提供了一个完整的S7-1200四路抢答器程序&#xff0c;可以直接下载并使用。该程序适用于需要进行四路抢答的场景&#xff0c;如竞赛、培训等。程序经过精心设计和测试&#x…...

完整教程:DIY-Multiprotocol-TX-Module固件编译与烧录

完整教程&#xff1a;DIY-Multiprotocol-TX-Module固件编译与烧录 【免费下载链接】DIY-Multiprotocol-TX-Module Multiprotocol TX Module (or MULTI-Module) is a 2.4GHz transmitter module which controls many different receivers and models. 项目地址: https://gitco…...

【2026年最新版】JDK安装、环境配置教程(详细图文附安装包)

【2026年最新版】Java JDK安装、环境配置教程 一、前期准备&#xff08;重点&#xff09;1. 版本选择2. 安装包下载二、安装步骤三、环境变量配置&#xff08;必做&#xff09;四、验证是否成功一、前期准备&#xff08;重点&#xff09; 1. 版本选择 首选 JDK 17&#xff08…...

告别IDE切换!在VS2022里用上C++ Builder的智能提示(保姆级路径配置)

在VS2022中无缝集成C Builder智能提示的终极指南 对于长期使用C Builder进行Windows桌面开发的工程师来说&#xff0c;Visual Studio 2022的现代化界面和强大调试功能一直是个诱人的存在。但频繁在两个IDE之间切换不仅打断工作流&#xff0c;还会显著降低开发效率。本文将揭示如…...

备战蓝桥杯别只刷题了!用2023年JavaB组真题手把手教你锻炼“竞赛思维”

从2023年蓝桥杯JavaB组真题看竞赛思维的三大核心能力 在算法竞赛的征途上&#xff0c;许多选手常常陷入"题海战术"的误区&#xff0c;认为刷题数量直接决定比赛成绩。然而&#xff0c;2023年第十四届蓝桥杯JavaB组的真题却向我们揭示了一个更深刻的真相&#xff1a;竞…...

抠图怎么抠出来?2026年最好用的免费AI抠图工具测评指南

你是否经常为了一张证件照、商品图或者头像而烦恼&#xff1f;想要快速去掉背景但又不想学复杂的PS操作&#xff1f;我今天要分享的&#xff0c;就是如何用现代AI抠图工具轻松搞定这一切。为什么抠图这么难&#xff1f;抠图之所以成为很多人的"老大难"&#xff0c;主…...

5分钟掌握全平台炫酷抽奖:Magpie-LuckyDraw开源项目深度解析

5分钟掌握全平台炫酷抽奖&#xff1a;Magpie-LuckyDraw开源项目深度解析 【免费下载链接】Magpie-LuckyDraw &#x1f3c5;A fancy lucky-draw tool supporting multiple platforms&#x1f4bb;(Mac/Linux/Windows/Web/Docker) 项目地址: https://gitcode.com/gh_mirrors/ma…...