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

python 笔记(1)——基础和常用部分

目录

1、print 输出不换行

2、格式化输出字符串

3、浮点数的处理

4、进制转换和ASCII与字符间的转换

5、随机数

6、字符串截取和内置方法

6-1)字符串截取

6-2)字符串内置方法

7、元组、列表,及其遍历方式

7-1)列表常用内容 

7-2)元组

7-3)几种遍历方式: 

7-4)列表与元组之间的转化

8、字典即其遍历方法

8-1)字典的基本操作 

8-2)字典的遍历 

9、函数

9-1)默认参数 

9-2)可变长参数

9-3)字典参数(关键字参数)

9-4)多种返回值

9-5)匿名函数(lambda 表达式)

10、包和模块

10-1)导入整个模块: 

10-2)从模块中导入指定的内容:

10-3)从包中导入模块等:

1、print 输出不换行

''' 让第一次的输出不换行 '''
string = 'hello '
str = 'world.'
print(string, end='')
print(str, end='\n\n\n')            # 结尾空两行
print('goodbye world')

2、格式化输出字符串

phone = input('请输入电话号码: ')     # 命令行输入
string = 'your phone is : 'print(string + phone)print('%s%d' % (string, int(phone)))print(f"{string}{phone}")print('{}{}'.format(string, phone))

3、浮点数的处理

import math
num = 123.745print('舍去小数取整:', int(num))
print('返回两位小数:', '%.2f' % num)
print('返回两位小数:', '{:.2f}'.format(num))
print('向上取整:', math.ceil(num))
print('向下取整:', math.floor(num))
print('舍去小数取整:', math.trunc(num))
print('舍去小数取整:', int(num))
print('四舍五入取整:', round(num))

4、进制转换和ASCII与字符间的转换

ord():字符转ASCII

chr():ASCII转字符

bin():十进制转二进制

oct():十进制转八进制

hex():十进制转十六进制

'''字符与ASCII码之间的转换'''
print(ord('A'))             # 字符转ASCII码 65
print(chr(48))              # ASCII码转字符 0'''进制转换'''
print(bin(78))              # 十进制转二进制 0b1001110
print(oct(78))              # 十进制转八进制 0o116
print(hex(78))              # 十进制转十六进制 0x4e

5、随机数

'''随机数'''
import randomr = random.randint(1, 10)           # 闭区间内生成随机数
print(r)
r2 = random.randrange(1, 10, 2)        # 左闭右开区间生成随机数,步长为2
print(r2)
r3 = random.uniform(1, 5)               # 生成随机小数 左闭
print(r3)
r4 = random.choice("ABSCD")                 # 取随机的一个元素
print(r4)
r5 = random.choice([1,3,4,5,6,2])
print(r5)

6、字符串截取和内置方法

6-1)字符串截取

source = 'Hello_World'
print(source[0:5])          # 取[0,5)    Hello
print(source[:5])           # 取[0,5)    Hello
print(source[2])            # 取下标   l
print(source[-5:-1])        # 取倒数第5到倒数第2个字符   Worl
print(source[5:])           # 第5个到最后一个字符    _World
print(source[-1])           # 取最后一个字符   d
print(source[0:5:2])        # 从范围[0,5)中取,设置步长为2,取下标为 0 2 4拼接    Hlo

6-2)字符串内置方法

source = 'HelloWorld'
print(source.count('l'))        # 字符 l 在字符串中出现的次数
print(len(source))              # 字符串的长度
print(source.split('o'))        # 按照o来拆分 ['Hell', 'W', 'rld']list = ['zhang','hou','wu','wang']
print('#'.join(list))           # 数组合并成字符串 zhang#hou#wu#wang# 编码和解码
source = '你好啊我是张三'
target = source.encode()            # 将字符串按照指定的编码格式转换成字节类型,默认编码格式为utf-8
print(target, target == source)     # b'HelloWorld' False
print(target.decode() == source)    # True
# utf-8编码每 3个字节表示一个中文,而 gbk每 2个字节表示一个中文source = '\n\t  hello world \n\n'
print(source.strip())               # 将字符串左右的换行符和空格都清理掉

7、元组、列表,及其遍历方式

7-1)列表常用内容 

.append(x):往列表最后添加一个元素;

.pop():移除第一个元素;

.reverse():翻转列表;

.remove(x):从列表中移除指定的元素;

(以上四个方法都会改变原数组)

.count(x):统计x在列表中出现的次数;

.index(x):x再列表中第一次出现的位置

.max()、.min()方法分别返回列表中的最大、最小值;

mylist = [1, 6, 234.23, 'adf', '张三']
print(mylist)               # [1, 6, 234.23, 'adf', '张三']
print(mylist[2])            # 234.23
print(mylist[-1])           # 张三
print(mylist[:2])           # [1, 6]
print(6 in mylist)          # True
print(mylist + ['哈哈'])      # [1, 6, 234.23, 'adf', '张三', '哈哈']a,b,c = mylist[:3]
print(a, b, c)              # 1 6 234.23print(len(mylist))          # 5mylist.append('end')
print(mylist)               # [1, 6, 234.23, 'adf', '张三', 'end']
print(mylist.index('张三'))   # 4mylist.pop()
print(mylist)               # [1, 6, 234.23, 'adf', '张三']mylist.reverse()
print(mylist)               # ['张三', 'adf', 234.23, 6, 1]

7-2)元组

        元组是不可改变的,因此元组没有列表中的append、pop、remove等的方法。

tup_1 = (1, 234.23, 'adf', '张三')
print(tup_1[2])         # adf
print(tup_1[:3])        # (1, 234.23, 'adf')tup_2 = (1)
print(tup_2, type(tup_2))       # 1 <class 'int'>tup_3 = (1,)
print(tup_3, type(tup_3))       # (1,) <class 'tuple'>

7-3)几种遍历方式: 

        遍历元组和遍历列表基本一致。

mylist = [1,2,3,4,5,6]
for e in mylist:                 # 遍历,e是mylist中的元素print(e)for i in range(0, len(mylist)):       # 遍历,左闭右开 i 是索引print(i, end='\t')print(mylist[i])''' for——else 结构 '''
for item in mylist:print(item)
else:print("循环结束")''' while——else 结构 '''
i = 0
while i < len(mylist):print(list[i])i += 1
else:print('循环结束')

 

7-4)列表与元组之间的转化

tuple(list):列表转换成元组

list(tuple) :元组转换成列表

list1 = [1,2,3,4,5]
tup1 = tuple(list1)          # 列表转换成元组
print(tup1)                  # (1, 2, 3, 4, 5)
list2 = list(tup1)           # 元组转换成列表
print(list2)                 # [1, 2, 3, 4, 5]

8、字典即其遍历方法

8-1)字典的基本操作 

student = {"name":'张三',"age":24,"gender":'男'
}# 两种获取方法
print(student["name"])              # 张三
print(student.get("name"))          # 张三# 两种修改的方式
student["age"] += 1
print(student)              # {'name': '张三', 'age': 25, 'gender': '男'}
student.update({"name":'王五', "age":18})
print(student)              # {'name': '王五', 'age': 18, 'gender': '男'}student["phone"] = "12312344212"            # 新增
print(student)              # {'name': '王五', 'age': 18, 'gender': '男', 'phone': '12312344212'}student.pop('gender')                       # 删除某一项
print(student)              # {'name': '王五', 'age': 18, 'phone': '12312344212'}

8-2)字典的遍历 

for i in student:                           # 得到的 i 是 keyprint(f"key:{i}, value:{student[i]}")
'''
key:name, value:王五
key:age, value:18
key:phone, value:12312344212
'''for k in student.keys():                    # 直接遍历键print(k)
'''
name
age
phone
'''for v in student.values():                  # 直接遍历值print(v)
'''
王五
18
12312344212
'''for kv in student.items():                  # 遍历出由键和值构造出来的元组print(kv)                       
'''
('name', '王五')
('age', 18)
('phone', '12312344212')
'''for k,v in student.items():                 # 同时遍历键和值print(k, v)
'''
name 王五
age 18
phone 12312344212
'''

9、函数

python 中的参数分为4类
1、必须参数(位置参数,positional argument)
2、默认参数(定义形参时可以指定一个默认值
3、可变长参数,可选参数     加 * 在前面来说明   接收到的数据将组成元组的形式可变长参数必须放到必须参数后,同时建议放到默认参数后
4、字典参数,关键字参数,   字典参数需要在可变长参数之后    加 ** 在前面来说明

9-1)默认参数 


def test_args_1(a, b, c = 100):     # a、b是必须参数,c是默认参数,如果不传c,则c默认为100print(a * b + c)test_args_1(1, 2, 3)        # 5
test_args_1(2, 3)               # 106
test_args_1(c=12, a=3, b=4)         # 能够正常工作,不必关心顺序问题   结果为 24

9-2)可变长参数

def test_args_2(a, b, *args):print(args)             # 可变长参数,以元组的形式存在    (3, 4)print(*args)            # 在元组或列表前面加 * 号,把元组和列表展开    3 4res = 0for item in args:res += itemres += a + bprint(res)      # 10test_args_2(1, 2, 3, 4)

9-3)字典参数(关键字参数)

def test_args_3(a, b, *args, **kwargs):result = a + bprint(result)               # 3print(args)                 # (3,4,5)print(kwargs)               # {'name': '张三', 'age': 64}# 字典参数中的键名不能与函数的形参名相同
test_args_3(1, 2, 3, 4, 5, name="张三", age=64)

9-4)多种返回值

def test_func_1(a,b,c):return a, [b, a], {"sum":a+b+c}res = test_func_1(1,6,3)
print(res)              # (1, [6, 1], {'sum': 10})x,y,z = test_func_1(1,6,3)
print(x,y,z)            # 1 [6, 1] {'sum': 10}

9-5)匿名函数(lambda 表达式)

        lambda 参数:返回值

lamb = lambda a, b : a + b
res = lamb(1, 2)
print(res)                # 3lamb_1 = lambda *args : sum(args)
res = lamb_1(1,2,3,4,5)
print(res)                  # 15

 

10、包和模块

        模块 是包含python定义和语句的文件,每一个以.py后缀结尾的文件都可以看成是一个模块;

        包 可以看成是包含若干个python模块的文件夹(目录),但是该目录下需要有一个 __init__.py 文件才能被识别为一个包(可以在需要的时候在目录下直接创建一个__init__.py 文件);

        在导入一个模块的时候,实际上是把该模块的代码重新执行了一遍;一个模块不管import了多少遍,只会执行一次;可以在任何需要的地方导入模块;

10-1)导入整个模块: 

# 第一中方式
import math, re, osprint(math.sin(math.pi / 2))       # 需要 模块名.函数 或 模块名.变量名 这样的形式来使用# 第二种方式
from math import *print(sin(pi / 2))            # 可以直接使用

10-2)从模块中导入指定的内容:

# 从 math 模块中导入 sin 函数和 pi 模块变量
from math import sin,piprint(sin(pi / 2))

10-3)从包中导入模块等:

# 1
from parent_modules.child_modules.package_1 import testFunc
res = testFunc(1,2)
print(res)# 2
from parent_modules.child_modules.package_1 import *
res = testFunc(1,2)
test('你好')
print(res)# 3
from parent_modules.child_modules import package_1
package_1.test('你好啊')

相关文章:

python 笔记(1)——基础和常用部分

目录 1、print 输出不换行 2、格式化输出字符串 3、浮点数的处理 4、进制转换和ASCII与字符间的转换 5、随机数 6、字符串截取和内置方法 6-1&#xff09;字符串截取 6-2&#xff09;字符串内置方法 7、元组、列表&#xff0c;及其遍历方式 7-1&#xff09;列表常用内…...

kafka架构和原理详解

Apache Kafka 是一个分布式流数据平台,用于高吞吐量、持久性、可扩展的发布和订阅消息。它具有高度的可靠性,被广泛用于构建实时数据流处理、日志收集和数据管道等应用。 基本架构 1. 主题(Topic): 主题是消息的逻辑分类生产者将消息发布到特定的主题中,而消费者可以订阅…...

wsl Ubuntu中非root的普通用户怎么直接执行docker命令

docker需要root权限&#xff0c;如果希望非root用户直接使用docker命令&#xff0c;而不是使用sudo&#xff0c;可以选择将该用户加入到docker用户组。 sudo groupadd docker&#xff1a;添加到groupadd用户组&#xff08;已经有docker用户组&#xff0c;所以可以不用再新增do…...

Web开发模式、API接口、restful规范、序列化和反序列化、drf安装和快速使用、路由转换器(复习)

一 Web开发模式 1. 前后端混合开发模式 前后端混合开发模式是一种开发方式&#xff0c;将前端和后端的开发工作结合在一起&#xff0c;以加快项目的开发速度和 提高协作效率。这种模式通常用于快速原型开发、小型项目或敏捷开发中。在前后端混合开发模式中&#xff0c;前端和…...

<AMBA总线篇> AXI总线协议介绍

目录 01 AXI协议简介 AXI协议特性 AXI协议传输特性 02 AXI协议架构 AXI协议架构 write transaction(写传输) read tramsaction(读传输) Interface and interconnect 典型的AXI系统拓扑 03 文章总结 大家好&#xff0c;这里是程序员杰克。一名平平无奇的嵌入式软件工程…...

一个简单的Python网络爬虫教程

网络爬虫是一种自动获取网页内容的程序&#xff0c;它可以从互联网上的网站中提取数据并进行分析。本教程将带您逐步了解如何使用 Python 构建一个简单的网络爬虫。 注意&#xff1a;在进行网络爬虫时&#xff0c;请遵守网站的使用条款和法律法规&#xff0c;避免对目标网站造…...

YARN资源管理框架论述

一、简介 为了实现一个Hadoop集群的集群共享、可伸缩性和可靠性&#xff0c;并消除早期MapReduce框架中的JobTracker性能瓶颈&#xff0c;开源社区引入了统一的资源管理框架YARN。 YARN是将JobTracker的两个主要功能&#xff08;资源管理和作业调度/监控&#xff09;分离&…...

Unity查找资源依赖关系

这个方法主要是发现资源乱用的情况&#xff0c;对应的逻辑可能要改一个才能用到自己的项目里面 [MenuItem("Tools/Prefab/查找选中资源依赖关系", false, 0)] public static void FindDependencies() { foreach (var guid in Selection.assetGUIDs…...

【操作系统】聊聊局部性原理是如何提升性能的

对于目前数据主导的系统&#xff0c;大多数都是Java/Go 技术栈MySQL&#xff0c;但是随着时间的推移&#xff0c;数据库数据的数据量过多&#xff0c;并且会频繁访问热点数据&#xff0c;为了提升系统的性能&#xff0c;一般都是加入缓存中间件、Redis。 局部性原理 我们知道…...

多线程应用——单例模式

单例模式 文章目录 单例模式一.什么是单例模式二.如何实现1.口头实现2.利用语法特性 三.实现方式&#xff08;饿汉式懒汉式&#xff09;1.饿汉式2.懒汉式3.线程安全的单例模式4.双重检查锁5.禁止指令重排序 一.什么是单例模式 单例模式&#xff08;Singleton Pattern&#xff…...

几种在JavaScript中创建对象的方式!

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 字面量方式⭐ 构造函数方式⭐ Object.create()方式⭐ 工厂函数方式⭐ ES6类方式⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门…...

java项目mysql转postgresql

特殊函数 &#xff1a; mysql&#xff1a; find_in_set(?, ancestors) postgresql&#xff1a; ? ANY (string_to_array(ancestors,,)) mysql&#xff1a; date_format(t1.oper_time, %Y-%m-%d) postgresql&#xff1a; rksj::date to_char(inDate,YYYY-MM-DD) mysql&am…...

SpringBoot Mybatis 多数据源 MySQL+Oracle

一、背景 在SpringBoot Mybatis 项目中&#xff0c;需要连接 多个数据源&#xff0c;连接多个数据库&#xff0c;需要连接一个MySQL数据库和一个Oracle数据库 二、依赖 pom.xml <dependencies><dependency><groupId>org.springframework.boot</groupId&…...

(笔记五)利用opencv进行图像几何转换

参考网站&#xff1a;https://docs.opencv.org/4.1.1/da/d6e/tutorial_py_geometric_transformations.html &#xff08;1&#xff09;读取原始图像和标记图像 import cv2 as cv import numpy as np from matplotlib import pyplot as pltpath r"D:\data\flower.jpg&qu…...

【Flutter】Flutter 使用 fluttertoast 实现显示 Toast 消息

【Flutter】Flutter 使用 fluttertoast 实现显示 Toast 消息 文章目录 一、前言二、安装和基础使用三、不同平台的支持情况四、如何自定义 Toast五、在实际业务中的应用六、完整的业务代码示例&#xff08;基于 Web 端&#xff09;七、总结 一、前言 在这篇文章中&#xff0c;…...

nowcoder NC236题 最大差值

目录 题目描述&#xff1a; 示例1 示例2 题干解析&#xff1a; 暴力求解&#xff1a; 代码展示&#xff1a; 优化&#xff1a; 代码展示&#xff1a; 题目跳转https://www.nowcoder.com/practice/a01abbdc52ba4d5f8777fb5dae91b204?tpId128&tqId33768&ru/exa…...

TCP/IP五层模型、封装和分用

1.网络通信基础2.协议分层OSI七层协议模型TCP/IP五层/四层协议模型【重点】 3. 封装&分用 1.网络通信基础 IP地址&#xff1a;表示计算机的位置&#xff0c;分源IP和目标IP&#xff1b;举个例子&#xff1a;买快递&#xff0c;商家从上海发货&#xff0c;上海就是源IP&…...

LeetCode 面试题 01.08. 零矩阵

文章目录 一、题目二、C# 题解 一、题目 编写一种算法&#xff0c;若M N矩阵中某个元素为0&#xff0c;则将其所在的行与列清零。 点击此处跳转题目。 示例 1&#xff1a; 输入&#xff1a; [ [1,1,1], [1,0,1], [1,1,1] ] 输出&#xff1a; [ [1,0,1], [0,0,0], [1,0,1] ] 示…...

Qt应用开发(基础篇)——进度条 QProgressBar

一、前言 QProgressBar类继承于QWidget&#xff0c;是一个提供了横向或者纵向进度条的小部件。 QProgressBar进度条一般用来显示用户某操作的进度&#xff0c;比如烧录、导入、导出、下发、上传、加载等这些需要耗时和分包的概念&#xff0c;让用户知道程序还在正常的执行中。 …...

108页石油石化5G智慧炼化厂整体方案PPT

导读:原文《108页石油石化5G智慧炼化厂整体方案PPT》(获取来源见文尾),本文精选其中精华及架构部分,逻辑清晰、内容完整,为快速形成售前方案提供参考。以下是部分内容,...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...