python学习-基础1

news2024/10/6 3:16:30

一.简介

Python的特点和优势是什么? 
Python是一种解释型语言、动态类型语言、面向对象编程语言,具有丰富的库和广泛的应用领域。

python大小写敏感,靠缩进保证代码的执行

二.Python中的数据类型

Python的八种数据类型八种数据类型分别是: number(数字)、string(字符串)、Boolean(布尔值)、None(空值)、 list(列表)、tuple(元组)、dict(字典)和集合(set)。

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

2.1数字

支持三种不同的数值类型:整型(int)、浮点型(float)、复数(complex)
整型:通常称为整数,是整数或者负数,不带小数点。python3整型类型没有大小限制
浮点型:浮点型由整数部分与小数部分组成
复数型:复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

数字类型的关系
1.三种数字类型存在一种逐渐“扩展”关系。
  整数  ->  浮点数  ->  复数
2.不同数字类型之间可以进行混合运算,运算结果为最宽的类型
例如 :  124 + 4.0 = 127.0 (整数 + 浮点数 = 浮点数)

python数字类型相互转换:
int(x) 将x转换为一个整数。
float(x) 将x转换到一个浮点数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。

python数字运算
x + y                x与y之和
x - y                 x与y之差
x * y                 x与y之积
x / y                 x与y之商,返回的是浮点数
x // y              不大于x与y之商的最大整数,向下取整数
x % y               x与y之商的余数
x ** y               x的y次幂
abs(x)             x的绝对值
divmod(x,y)    (x//y, x%y)
pow(x,y)         x的y次幂

判断数字类型
函数:type(x), 返回x的类型,适用于所有类型的判断。

2.2 字符串

字符串是由0个或多个字符组成的有序字符序列;
字符串有2种4类表示方法:
解法1:单引号表示字符串
str1 = 'Hello, World!'
解法2:双引号表示字符串
str2 = "Hello, World!"
解法3:使用三引号表示多行字符串
str3 = '''Hello,
World!'''
解法4:使用三引号表示字符串,并包含特殊字符
str4 = '''Hello,
World!
This is a string with
new lines and special characters:
$!@#$%^&*()'''
解法5:使用三引号表示空字符串
str5 = ''''''

字符串的使用:
1.索引index
var1[0]
var1[-1]
2.分片
使用str[M: N: K]根据步长对字符串切片:
str 是要进行切片操作的字符串。
start 是起始索引,表示要切片的起始位置(包含该位置的字符)。
end 是结束索引,表示要切片的结束位置(不包含该位置的字符)。
step 是步长,表示每隔多少个字符进行切片,默认为 1。
str[1:3] # "tr" 
#获取从偏移为1到偏移为3的字符串,不包括偏移为3的字符
str[1:] # "tring"
#获取从偏移为1到最后的一个字符,不包括最后一个字符
str[:3] #"str"
# 获取从偏移为0的字符一直到偏移为3的字符串,不包括偏移为3的字符串
str[:-1] #strin"
#获取从偏移为0的字符一直到最后一个字符(不包括最后一个字符串)     
str[:] #"string"
#获取字符串从开始到结尾的所有元素   
str[-3:-1] #"in"
#获取偏移为-3到偏移为-1的字符,不包括偏移为-1的字符 
str[::-1] # "gnirts"
#反转输出

字符串操作符
x+y:实现字符串的拼接
n * x 或 x * n:复制n次字符串x
x in s:如果x是s的子串,返回True,否则返回False

python内置函数处理字符串
len(x):长度,返回字符串x的长度len(“一二三456”) 结果为 6
str(x):任意类型x所对应的字符串形式str(1.23)结果为"1.23" str([1,2])结果为"[1,2]"
-hex(x) 或 oct(x):整数x的十六进制或八进制小写形式字符串hex(425)结果为"0x1a9" oct(425)结果为"0o651"
chr(u):x为Unicode编码,返回其对应的字符
ord(x):x为字符,返回其对应的Unicode编码

额外知识:Unicode编码
Python字符串中每个字符都是Unicode编码字符
处理文件或网络传输,经常需要将字符串编码为特定格式,例如UTF-8
统一字符编码,即覆盖几乎所有字符的编码方式
从0到1114111 (0x10FFFF)空间,每个编码对应一个字符
将Unicode字符串转换为其他编码(如UTF-8),可以使用.encode()方法,用于写文件
将其他编码转换为Unicode,可以使用.decode()方法,用于读内容到python内存

字符串的方法
str.lower()或str.upper():返回字符串的副本,全部字符小写/大写
str.split([separator[, maxsplit]]):方法把字符串分成序列。
    separator -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
    maxsplit -- 分割次数。
    返回分割后的字符串列表。
    str.split(",",3)
str.count(sub):返回子串sub在str中出现的次数

str.replace(old,new[,max]): 返回字符串str副本,所有old子串被替换为new
str.center(width[,fillchar]) :字符串str根据宽度width居中,fillchar可选

str.strip(chars):从str中去掉在其左侧和右侧chars中列出的字符
str.join(iter):在iter变量除最后元素外每个元素后增加一个str,",".join("123456")

字符串类型的格式化
<模板字符串>.format(<逗号分隔的参数>)
"{1}:计算机{0}的CPU占用率为{2}%".format("2018-10-10","c",10)
"{0: >20}".format("CPU:")  填充的单个字符/<左对齐,>右对齐,^居中对齐/宽度

2.3数组/元组/字典/集合

名称元组Tuple()数组List[]字典Dict{}集合Set{}
初始化

tup1 = ();
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义
tup1 = (50,);

a = [1,2,[1,2,3]]
arr = []
dict = {‘ob1′:’computer’, ‘ob2′:’mouse’, ‘ob3′:’printer’}
每一个元素是pair,包含key、value两部分。key是Integer或string类型,value 是任意类型。
键是唯一的,字典只认最后一个赋的键值。

person ={"student","babe",123,123}

#空set集合用set()函数表示

person1 = set() #表示空set,不能用person1={}

不允许修改一维arr.append('aaa')
二维arr[0].append('aaa')
arr.insert(n, 值)
arr += [数组元素]
可以直接增加一个元素,如果同名,则会改变原来的key的元素的值
dict_arr['d'] = 'dog'

增加单个元素

person.add("student")

增加多个元素,数据类型是元组不能是LIST

person.add((1,23,"hello"))

数据类型是元组、字典不能是数组

person.update((1,23,"hello"))

不允许修改arr[0]=newValue不支持改变

下标索引从0开始,截取,组合等

tup1[1]

tup2[1:5]

下标索引,从0开始,截取组合

arr[1]

dict_arr['d'] 

D.get(key, 0) #同dict[key],多了个没有则返回缺省值,0。[]没有则抛异常
D.has_key(key) #有该键返回TRUE,否则FALSE
D.keys() #返回字典键的列表
D.values()
D.items()

"teacher" in person
del tup;整个元组

arr.pop(index):默认删除最后一个,若指定则删除指定index元素

del arr[0,2]

D.clear() #清空字典,同del dict

D.popitem() #得到一个pair,并从字典中删除它。已空则抛异常

person.remove("babe")

person.discard("student")

person.pop() #在list里默认删除最后一个,在set里随机删除一个。

person.clear()全部清空

内置函数

tup3= tup1+tup2;

cmp(tuple1, tuple2):比较两个元组元素。
len(tuple):计算元组元素个数。
max(tuple):返回元组中元素最大值。
min(tuple):返回元组中元素最小值。
tuple(seq):将列表转换为元组

遍历

for k, v in enumerate(arr):
    print k, v

#输出所有的key
print dict_arr.keys()

#输出所有的value
print dict_arr.values()

D.update(dict2) #增加合并字典

D.copy() #拷贝字典
D.cmp(dict1,dict2) #比较字典,(优先级为元素个数、键大小、键值大小)

print(str1,str2)

print(str1 - str2) #-号可以求差集

print(str2-str1) #空值

#print(str1+str2) #set里不能使用+号

三、 内置函数

有68个Python内置函数,包含12大类
和数字相关
1.数据类型
bool : 布尔型(True,False)
int : 整型(整数)
float : 浮点型(小数)
complex : 复数
2.进制转换
bin() 将给的参数转换成二进制
otc() 将给的参数转换成八进制
hex() 将给的参数转换成十六进制
​3. 数学运算
abs() 返回绝对值
divmode() 返回商和余数
round() 四舍五入
pow(a, b) 求a的b次幂, 如果有三个参数. 则求完次幂后对第三个数取余
sum() 求和
min() 求最小值
max() 求最大值

和数据结构相关
1. 序列
(1)列表和元组
list() 将一个可迭代对象转换成列表
tuple() 将一个可迭代对象转换成元组
(2)相关内置函数
reversed() 将一个序列翻转, 返回翻转序列的迭代器
slice() 列表的切片
(3)字符串
str() 将数据转化成字符串
bytes() 把字符串转化成bytes类型
ord() 输入字符找带字符编码的位置
chr() 输入位置数字找出对应的字符
ascii() 是ascii码中的返回该值 不是就返回u
repr() 返回一个对象的string形式
2.数据集合
字典:dict 创建一个字典
集合:set 创建一个集合
frozenset() 创建一个冻结的集合,冻结的集合不能进行添加和删除操作。
3. 相关内置函数
len() 返回一个对象中的元素的个数
sorted() 对可迭代对象进行排序操作 (lamda)
语法:sorted(Iterable, key=函数(排序规则), reverse=False)
Iterable: 可迭代对象
key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每一个元素传递给这个函数的参数. 根据函数运算的结果进行排序
reverse: 是否是倒叙. True: 倒叙, False: 正序\
enumerate() 获取集合的枚举对象
all() 可迭代对象中全部是True, 结果才是True
any() 可迭代对象中有一个是True, 结果就是True
zip() 函数用于将可迭代的对象作为参数, 将对象中对应的元素打包成一个元组, 然后返回由这些元组组成的列表. 如果各个迭代器的元素个数不一致, 则返回列表长度与最短的对象相同
fiter() 过滤 (lamda)
    语法:fiter(function. Iterable)
    function: 用来筛选的函数. 在filter中会自动的把iterable中的元素传递给function. 然后根据function返回的True或者False来判断是否保留留此项数据 , Iterable: 可迭代对象
map() 会根据提供的函数对指定序列列做映射(lamda)
    语法 : map(function, iterable)
    可以对可迭代对象中的每一个元素进行映射. 分别去执行 function
和作用域相关
locals() 返回当前作用域中的名字
globals() 返回全局作用域中的名字
和迭代器生成器相关
range() 生成数据
next() 迭代器向下执行一次, 内部实际使⽤用了__ next__()⽅方法返回迭代器的下一个项目
iter() 获取迭代器, 内部实际使用的是__ iter__()⽅方法来获取迭代器

字符串类型代码的执行
eval() 执行字符串类型的代码. 并返回最终结果
exec() 执行字符串类型的代码
compile() 将字符串类型的代码编码. 代码对象能够通过exec语句来执行或者eval()进行求值

输入输出
print() : 打印输出
input() : 获取用户输出的内容

内存相关
hash() : 获取到对象的哈希值(int, str, bool, tuple). hash算法:(1) 目的是唯一性 (2) dict 查找效率非常高, hash表.用空间换的时间 比较耗费内存

文件操作相关
open() : 用于打开一个文件, 创建一个文件句柄

模块相关
__ import__() : 用于动态加载类和函数

帮 助
help() : 函数用于查看函数或模块用途的详细说明

调用相关
callable() : 用于检查一个对象是否是可调用的. 如果返回True, object有可能调用失败, 但如果返回False. 那调用绝对不会成功

查看内置属性
dir() : 查看对象的内置属性, 访问的是对象中的__dir__()方法
print(dir(tuple))  #查看元组的方法

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

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

相关文章

花所Flower非小号排名20名下载花所Flower

1、Flower花所介绍 Flower花所是一家新兴的数字货币交易平台&#xff0c;致力于为全球用户提供安全、便捷的交易体验。平台以其强大的技术支持和丰富的交易产品闻名&#xff0c;为用户提供多样化的数字资产交易服务&#xff0c;涵盖了主流和新兴数字货币的交易需求。 2. Flowe…

SQL之delete、truncate和drop区别

MySQL删除数据的方式都有哪些&#xff1f; 常用的三种删除方式&#xff1a;通过 delete、truncate、drop 关键字进行删除&#xff1b;这三种都可以用来删除数据&#xff0c;但场景不同。 一、从执行速度上来说 drop > truncate >> DELETE;二、从原理上讲 1、DELET…

Guitar Pro8.2让你的吉他弹奏如虎添翼!

亲爱的音乐爱好者们&#xff0c;今天我要跟大家安利一个让我彻底沉迷其中的神器——Guitar Pro8.2&#xff01;这可不是一般的软件&#xff0c;它简直是吉他手们的福音。不管你是初学者还是老鸟&#xff0c;这个打谱软件都能给你带来前所未有的便利和价值。 让我们来聊聊Guita…

原理图设计工作平台:capture和capture CIS的区别在于有没有CIS模块

1环境:design entry CIS 2.参数设置命令options——preference&#xff08;7个选项卡colors/print&#xff0c;grid display&#xff0c;miscellaneous&#xff0c;pan and zoom&#xff0c;select&#xff0c;text editor和board simulation&#xff09; 1)颜色设置colors/p…

12 电商高并发缓存实战

序章 项目代码缓存的数据一致性 延时双删 淘汰缓存写数据库休眠1s,再次淘汰缓存缺点:如果mysql是主从复制,去从库中拿去数据,此时同步数据还未完成,拿到的数据是旧数据。 先更新 DB,后删除缓存 采用异步延时删除策略. ①利用消息队列进行删除的补偿。②Mysql 数据库更新操…

深入理解并发、线程与等待通知机制

目录 一、基础概念 进程和线程 进程 线程 Java 线程的无处不在 进程间的通信 进程间通信有几种方式&#xff1f; CPU 核心数和线程数的关系 上下文切换&#xff08;Context switch&#xff09; 并行和并发 二、认识 Java 里的线程 Java 程序天生就是多线程的 线程的…

python语句性能分析

1、for语句性能优于while import timeif __name__ __main__:start_time time.time()for i in range(10 ** 8):passend_time time.time()run_time end_time - start_timeprint(run_time)i 0start_time time.time()while i < 10 ** 8:i 1end_time time.time()run_tim…

【Spring Cloud】微服务的简单搭建

文章目录 &#x1f343;前言&#x1f384;开发环境安装&#x1f333;服务拆分的原则&#x1f6a9;单一职责原则&#x1f6a9;服务自治&#x1f6a9;单向依赖 &#x1f340;搭建案例介绍&#x1f334;数据准备&#x1f38b;工程搭建&#x1f6a9;构建父子工程&#x1f388;创建父…

Spring Boot的无缝衔接:深入解析与实践

欢迎来到 破晓的历程的 博客 ⛺️不负时光&#xff0c;不负己✈️ &#x1f680;The begin&#x1f697;点点关注&#xff0c;收藏不迷路&#x1f6a9; 引言 在快速迭代的软件开发环境中&#xff0c;无缝衔接是提升开发效率、降低维护成本、增强系统稳定性的关键。Spring Boo…

嵌入式c语言5——位运算符

<<与>>是c语言中两个移位运算符&#xff0c;分别有乘以2与除以2的意义 位运算符还包括&#xff0c;与&&#xff0c;或|&#xff0c;均进行按位操作 同时&#xff0c;还可以进行取反以及异或操作

【C++】cout.self()函数

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文作为 JohnKi 学习笔记&#xff0c;借鉴了部分大佬案例 &#x1f4e2;未来很长&#…

web前端开发——开发环境和基本知识

今天我来针对web前端开发讲解一些开发环境和基本知识 什么是前端 前端通常指的是网站或者Web应用中用户可以直接与之交互的部分&#xff0c;包括网站的结构、设计、内容和功能。它是软件开发中的一个专业术语&#xff0c;特别是指Web开发领域。前端开发涉及的主要技术包括HTML…

C++语言相关的常见面试题目(一)

1. const关键字的作用 答&#xff1a; 省流&#xff1a;&#xff08;1&#xff09;定义变量&#xff0c;主要为了防止修改 (2) 修饰函数参数&#xff1a;防止在函数内被改变 &#xff08;3&#xff09;修饰函数的返回值 &#xff08;4&#xff09;修饰类中的成员函数 2. Sta…

Windows远程桌面实现之十五:投射浏览器摄像头到xdisp_virt以及再次模拟摄像头(一)

by fanxiushu 2024-07-01 转载或引用请注明原始作者。 本文还是围绕xdisp_virt这个软件展开&#xff0c; 再次模拟成摄像头这个比较好理解&#xff0c;早在很久前&#xff0c;其实xdisp_virt项目中就有摄像头功能&#xff0c; 只是当时是分开的&#xff0c;使用起来…

centos docker 安装mysql:8.0.21 天坑记录

docker pull mysql:8.0.21 安装的mysql 8.0.21 版本&#xff0c;当创建表时只要创建表的字段大于10&#xff0c;就会报错 > 2013 - Lost connection to MySQL server during query 当删除一个字段&#xff0c;刚好9个字段时就可以创建成功&#xff0c;打印等于10个&#…

时间处理的未来:Java 8全新日期与时间API完全解析

文章目录 一、改进背景二、本地日期时间三、时区日期时间四、格式化 一、改进背景 Java 8针对时间处理进行了全面的改进&#xff0c;重新设计了所有日期时间、日历及时区相关的 API。并把它们都统一放置在 java.time 包和子包下。 Java5的不足之处&#xff1a; 非线程安全&…

Nginx auth 的权限验证

基本流程 整个流程为&#xff1b;以用户视角访问API开始&#xff0c;进入 Nginx 的 auth 认证模块&#xff0c;调用 SpringBoot 提供的认证服务。根据认证结果调用重定向到对应的 API 接口或者 404 页面。 查看版本保证有 Nginx auth 模块 由于 OpenAI 或者本身自己训练的一套…

实现多数相加,但是传的参不固定

一、情景 一般实现的加法和减法等简单的相加减函数的话。一般都是写好固定传的参数。比如&#xff1a; function add(a,b) {return a b;} 这是固定的传入俩个&#xff0c;如果是三个呢&#xff0c;有人说当然好办&#xff01; 这样写不就行了&#xff01; function add(a…

前端JS特效第22波:jQuery滑动手风琴内容切换特效

jQuery滑动手风琴内容切换特效&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xm…

Day4 用 rustlings 练习 Rust 语言

大家好 今天 完成 2024年自动驾驶OS开发训练营-初阶营第四期-导学 Day4用 rustlings 练习 Rust 语言 欢迎加入国家智能网联汽车创新中心OS开发训练营大家庭。&#x1f680; 导学阶段启动 在正式开营之前&#xff0c;我们特别设置了导学阶段&#xff0c;旨在帮助大家更好地迎接颇…