当前位置: 首页 > 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…...

生成xcframework

打包 XCFramework 的方法 XCFramework 是苹果推出的一种多平台二进制分发格式&#xff0c;可以包含多个架构和平台的代码。打包 XCFramework 通常用于分发库或框架。 使用 Xcode 命令行工具打包 通过 xcodebuild 命令可以打包 XCFramework。确保项目已经配置好需要支持的平台…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...