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.745

print('舍去小数取整:', 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 random

r = 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.23

print(len(mylist))          # 5

mylist.append('end')
print(mylist)               # [1, 6, 234.23, 'adf', '张三', 'end']
print(mylist.index('张三'))   # 4

mylist.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 是 key
    print(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默认为100
    print(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 4
    res = 0
    for item in args:
        res += item
    res += a + b
    print(res)      # 10

test_args_2(1, 2, 3, 4)

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

def test_args_3(a, b, *args, **kwargs):
    result = a + b
    print(result)               # 3
    print(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)                # 3

lamb_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, os

print(math.sin(math.pi / 2))       # 需要 模块名.函数 或 模块名.变量名 这样的形式来使用



# 第二种方式
from math import *

print(sin(pi / 2))            # 可以直接使用

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

# 从 math 模块中导入 sin 函数和 pi 模块变量
from math import sin,pi

print(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('你好啊')

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Python构建网络爬虫:提取网页内容和图片资源

网络爬虫是一种自动获取网页内容的程序&#xff0c;它可以帮助我们高效地收集网络上的有价值信息。本文将介绍如何使用Python构建网络爬虫&#xff0c;提取网页内容和图片资源。   一、环境准备   1.安装Python环境   首先&#xff0c;确保您已经安装了Python环境。访问P…

可控硅调功电路原理

在常见的马达调速以及需要调整负载功率的场合&#xff0c;经常会用到可控硅调功电路&#xff0c;下图是常见的应用电路。 调功电路主要由阻容移相电路和可控硅触发电路构成&#xff0c;工作过程如下&#xff0c;当交流电的正半周时&#xff0c;交流电通过R5,可调电阻R3给电容C1…

java对时间序列根据阈值进行连续性分片

问题描述&#xff1a;我需要对一个连续的时间戳list进行分片&#xff0c;分片规则是下一个数据比当前数据要大于某一个阈值则进行分片&#xff1b; 解决方式&#xff1a; 1、输入的有顺序的list &#xff0c;和需要进行分片的阈值 2、调用方法&#xff0c;填入该排序的list和阈…

十种高级的代码书写方式,提高代码质量和工作效率

1.集合遍历 不使用lambda&#xff1a; List<String> list Arrays.asList("kk", "oneone", "11"); for (String name : list) {System.out.println(name); }使用lambda&#xff1a; List<String> list Arrays.asList("kk&q…

19 NAT穿透|python高级

文章目录 网络通信过程NAT穿透 python高级GIL锁深拷贝与浅拷贝私有化import导入模块工厂模式多继承以及 MRO 顺序烧脑题property属性property装饰器property类属性 魔法属性\_\_doc\_\_\_\_module\_\_ 和 \_\_class\_\_\_\_init\_\_\_\_del\_\_\_\_call\_\_\_\_dict\_\_\_\_str…

【爬虫小知识】如何利用爬虫爬网页——python爬虫

前言 网络时代的到来&#xff0c;给我们提供了海量的信息资源&#xff0c;但是&#xff0c;想要获取这些信息&#xff0c;手动一个一个网页进行查找&#xff0c;无疑是一项繁琐且效率低下的工作。这时&#xff0c;爬虫技术的出现&#xff0c;为我们提供了一种高效的方式去获取…

怎么入门网络安全(黑客)?

目录&#xff1a; 一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习2.不要把深度学习作为入门第一课3.以黑客技能、兴趣为方向的自学误区&#xff1a;4.不要收集过多的资料二、学习网络安全的一些前期准备三…

Kubernetes入门 十二、网络之Ingress

目录 概述安装 Ingress使用 Ingress准备工作部署Ingress设置默认后端Ingress 中的 nginx 的全局配置限流路径重写基于 Cookie 的会话保持技术配置 SSL 概述 通常情况下&#xff0c;service 和 pod 的 IP 仅可在集群内部访问。 Service 可以也使用 NodePort 暴露集群外访问端口…

Flutter性能揭秘之RepaintBoundary

作者&#xff1a;xuyisheng Flutter会在屏幕上绘制Widget。如果一个Widget的内容需要更新&#xff0c;那就只能重绘了。尽管如此&#xff0c;Flutter同样会重新绘制一些Widget&#xff0c;而这些Widget的内容仍有部分未被改变。这可能会影响应用程序的执行性能&#xff0c;有时…

QOpenGLWidget绘制实时图像

initializeGL()函数&#xff1a; initializeOpenGLFunctions();//创建VBO和VAO对象&#xff0c;并赋予IDglGenVertexArrays(1, &VAO);glGenBuffers(1, &VBO);//绑定VBO和VAO对象glBindVertexArray(VAO);glBindBuffer(GL_ARRAY_BUFFER, VBO);//为当前绑定到target的缓冲…

设计模式-职责链模式

文章目录 职责链模式模式概述主要角色适用场景实现步骤优点注意事项 定义职责链结构示例总结 职责链模式 职责链模式是一种行为设计模式&#xff0c;它可以将请求的发送者和请求的处理者解耦&#xff0c;并按照预定义的顺序处理请求。职责链模式常用于需要逐级审批或转交处理的…

根据源码,模拟实现 RabbitMQ - 网络通讯设计,自定义应用层协议,实现 BrokerServer (8)

目录 一、网络通讯协议设计 1.1、交互模型 1.2、自定义应用层协议 1.2.1、请求和响应格式约定 ​编辑 1.2.2、参数说明 1.2.3、具体例子 1.2.4、特殊栗子 1.3、实现 BrokerServer 1.3.1、属性和构造 1.3.2、启动 BrokerServer 1.3.3、停止 BrokerServer 1.3.4、处…

PHP8函数的引用和取消-PHP8知识详解

今天分享的是php8函数的引用和取消&#xff0c;不过在PHP官方的参考手册中&#xff0c;已经删除了此类教程。 1、函数的引用 在PHP8中不管是自定义函数还是内置函数&#xff0c;都可以直接简单的通过函数名调佣。函数的引用大致有下面3种&#xff1a; 1.1、如果是PHP的内置函…

Docker - Docker安装MySql并启动

因为项目需要连接数据库&#xff0c;但是远程服务器上的mysql我不知道账户和密码&#xff0c;这个时候便是docker发挥作用的关键时刻了&#xff01; 目录 docker安装安装gcc卸载老docker&#xff08;如有&#xff09;安装软件包设置镜像仓库更新yum软件包索引安装docker启动doc…

ESP32-CAM模块Arduino环境搭建测试

ESP32-CAM模块Arduino环境搭建测试 一.ESP32OV2640摄像头模块CameraWebServer视频查看 二.测试ESP32-CAM(后续称cam模块)代码是否上传执行成功测试 const int led0 12; const int led1 13;void setup() {// put your setup code here, to run once:pinMode(led0, OUTPUT);pin…

【业务功能篇84】微服务SpringCloud-ElasticSearch-Kibanan-电商实例应用

一、商品上架功能 ElasticSearch实现商城系统中全文检索的流程。 1.商品ES模型 商品的映射关系 PUT product {"mappings": {"properties": {"skuId": {"type": "long"},"spuId": {"type": "ke…

前端vue引入高德地图入门教程

距离上一篇关于前端项目中使用高德地图的文章已经将近5年之久&#xff0c; 这是我的第一篇关于高德地图的文章 这期间前端技术日新月异&#xff0c;5年前JQuery还如日中天&#xff0c;如今已经销声匿迹&#xff0c;很少有公司招聘还在要求JQuery&#xff0c;更多的是Vue、React…

Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

项目场景&#xff1a; 最近因为公司业务需要在搭一个新架构&#xff0c;用的springboot3和jdk17,在整合mybatis多数据源的时候报错 &#xff08;引用的mybatisplus 和 mybatisplusjion的是最新的包-2023-08-26&#xff09; Error creating bean with name ‘XXXServiceImpl’:…

非煤矿山风险监测预警算法 yolov8

非煤矿山风险监测预警算法通过yolov8网络模型深度学习算法框架&#xff0c;非煤矿山风险监测预警算法在煤矿关键地点安装摄像机等设备利用智能化视频识别技术&#xff0c;能够实时分析人员出入井口的情况&#xff0c;人数变化并检测作业状态。YOLO的结构非常简单&#xff0c;就…

【八股】2023秋招八股复习笔记5(计算机网络-CN)

文章目录 八股目录目录1、应用层 & HTTP一些http题HTTPS 加密原理&#xff08;问过&#xff09;HTTP/1.1 新特性HTTP/2.0 与 RPC&#xff08;问过&#xff09;GET 和 POST 比较 2、传输层 & TCPTCP三次握手 & 四次挥手&#xff08;问过&#xff09;为什么每次TCP 连…