IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python语法的学习 -> 正文阅读

[Python知识库]python语法的学习

在这里插入图片描述

一.数据类型

1.数字类型

(1)在Python中浮点类型只有单精度float

(2)复数类型(其实就是数学中开平方的那个东西)

complex1 = 22 + 12j
print('complex1 =', complex1)			#complex1 = (22+12j)
print('复数 complex1 中的实部为:', complex1.real)	#复数 complex1 中的实部为: 22.0
print('复数 complex1 中的虚部为:', complex1.imag)	#复数 complex1 中的虚部为: 12.0

complex_demo1 = complex(22)  		# 将数字 22 转换为复数
print('complex_demo1 =', complex_demo1)	#complex_demo2 = (22+0j)

complex_demo2 = complex('33-22j')	 	#将字符串转换为复数,字符串在+或-的周围(前后)必须不能有空格。
print('complex_demo2 =', complex_demo2)	#complex_demo2 = (33-22j)

2.判断是什么类型的数据

type(a1)

?print('complex1 的类型为:', type(complex1))

3.string类型

python中单引号和双引号没有区别,都表示字符串

?下面是常用函数的表

Python 常用的字符串函数
函数描述
title()返回将原字符串中单词首字母大写的新字符串
istitle判断字符串中的单词首字母是否大写
capitalize()返回将整个字符串的首字母大写的新字符串
lower()、upper()返回字符串的小写、大写后的新字符串
swapcase()返回字符串的大小写互换后的新字符串
islower()、isupper()判断字符串是否全部为小写、大写
strip()、lstrip()、rstrip()删除字符串首尾、左部或右部的空白,空白包括空格、制表符、换行符等
ljust()、rjust()、center()打印指定数目的字符,若字符串本身长度不足,则在其左部、右部或者两端用指定的字符补齐
startswith()、endswith()判断原字符串是否以指定的字符串开始或结束
isnumeric()、isdigit()、isdecimal()判断字符串是否为数字、整数、十进制数字
find()、rfind()在字符串中查找指定字符串第一次出现的位置,方向分别为从左和从右
split()按照指定的字符将字符串分割成词,并返回列表
splitlines()按照换行符将文本分割成行
count()统计指定字符串在整个字符串中出现的次数
format()用指定的参数格式化原字符串中的占位符

? ? string常用函数了解一下,具体用到可以百度。下面是具体的用法

a = 'Hello','LXX'
b = 'Hello''LX'
c,d= 'Hello','LXX'
print(a)    #('Hello', 'LXX')
print(b)    #HelloLXX
print(c,d)  #Hello LXX
print(c+d)  #HelloLXX
#字符串切片,从字符串中提取子串,可指定两个索引:第一个字符的索引;要提取的最后一个字符的索引加 1
print(a[0:-1])  #('Hello',)
print(b[0:-2])  #Hello
print(c[0:])  #Hello# 省略字符串的终止索引,Python 会假设你要提取到字符串末尾。

print(c*2,d*2)#各输出两次,HelloHello LXXLXX

print('Hello,\nLXX')#带有回车
print(r'Hello,\nLXX')#加了r后转义字符失效
print(b[0],b[-1])   #负数索引是从右向左,-i表示倒数第i个,H X
#Python字串符是不可以被改变的,如果向一个指定索引赋值,将会错误

print(ord('1')) #返回对应字符的ASCll数值,或者Unicode值

def codesum1(s):
    for c in s:
        print(c)
    for i in range(len(s)):
        print(s[i])
num=1
snum=str(num)    #str函数是将数值类型转换成string类型
print(type(snum))

4.列表:List类型

在Python中,复合数据类型分别有三种:Tuple(元组)、Set(集合)与List(列表)

? ? ? ? 下面是List的常用函数

????????下面 是List的用法

s1 ='asas'
name=list(s1)   #将字符串或者元组转换为列表
name[1:]=list(s1)   #分片赋值,可以使用与原序列不等长的序列将分片替换
print(name)

a = ['a','b','c',3] #创建两个列表
b = [4,'love','l','l',',','never','change']
print(a,b)      #['a', 'b', 'c', 3] [4, 'love', 'to', 'l', ',', 'never', 'change']
print(b[1:7:2]) #['love', 'l', 'never']
#参数1是起始的索引,默认为0;参数2是结尾的索引,默认是列表最后一位;参数3是步长,默认是1,当步长是负值时返回原序列的倒序,如[::-1]返回原序列倒序。
print(b[1:7],b[2])   #['love', 'to', 'l', ',', 'never', 'change'] l

a.append(347)       #添加元素:在列表末尾添加新数值
a.insert(2,2)       #插入元素:把元素插入到指定位置
print(a)            #['a', 'b', 2, 'c', 3, 347]

a[2:2]=['w22','e22']    #2个参数相等,则是从参数1中插入数据,参数不等,则是覆盖
print(a)                #['a', 'b', 'w22', 'e22', 2, 'c', 3, 347]
a[0:3]='A','B','C'      #元素替换,直接赋值给对应的索引位置
print(a)                #['A', 'B', 'C', 'e22', 2, 'c', 3, 347]
a[1:2]=[]           #插入一个空序列,a[1]到a[2-1]都是空的
print(a)            #['A', 'C', 'e22', 2, 'c', 3, 347]
a[2]=[]             #给a[2]一个空数列,移除a列表中指定索引数据
print(a)            #['A', 'C', [], 2, 'c', 3, 347]

print('a列表数据个数:',len(a))  #len()函数用于统计列表数据个数,a列表数据个数: 5

a.clear()           #清空列表
a.extend(b)         #扩展列表,追加多个值,与append的区别,如果append用列表追加,则列表会作为一个元素添加
# a.extend((4,5,6))  # 列表末尾添加元祖
# 1.append() 添加的是元素「引用」,而 extend() 添加的是元素的「值」
# 2.append() 可以添加「任意类型」元素,而 extend() 只能添加「序列」
a.pop()             #pop,移除,默认最后一个元素。可以加序号index指定移除
a.pop(0)            #x= list1.pop(0),x是返回的被删除的值
print('##')
print(a)            #['love', 'l', 'l', ',', 'never']

print(a.count('l')) #2,返回某个值在该列表出现的次数
print(a.index('l')) #1,找出第一个匹配该值的索引index,没有找到会报错
a.remove('l')      #找到指定元素删除只删除第一个出现的元素,,没有找到会报错
#remove可以删除【对象类型】元素,包括列表类型和数组类型
print(a)            #['love', 'l', ',', 'never']

del a[1:3]          #删除元素
print(a)            #['love', 'never']
a.reverse()         #反向列表中元素
print(a)            #['never', 'love']
print(max(a),min(a))       #返回列表元素最大值never,返回列表元素最小值love


cat = ['fat', 'black', 'loud']  #多重赋值
c1, c2, c3 = cat                #ci分别对应cat中的第i个
print(c1)

e1=[a,cat]              #生成一个嵌入式列表,下面也是一样
e2=a.append(cat)        #append函数添加的是地址,当被添加的列表发生变化时,添加后的列表也会同步变化
print(e1)               #[['love', 'never', ['fat', 'black', 'loud']], ['fat', 'black', 'loud']]
cat.append('a')
print(e1)               #[['love', 'never', ['fat', 'black', 'loud', 'aaaaa']], ['fat', 'black', 'loud', 'a']]

e3=e1                   #=是直接赋值,2个列表是等价的,修改其中任何一个列表都会影响到另一个列表。
eee = e1[ : ]           #采用切片就没事儿返回包含原列表所有元素的新列表
e3.append('0')
eee.append('1')
print(e3,eee)            #e3和e1的内容一样,eee和e1的内容不一样

e4=e1.copy()            #浅拷贝,只拷贝第一层, 浅拷贝后e1的变动可能影响e4的值(第二层改变)
import copy as cp
e5=cp.deepcopy(e1)       #深拷贝,拷贝所有内容,深拷贝后e1的任何变动不会影响e5
e1[2]='1'
e1[0][0]=10
print(e4)               #[[10, 'love', ['fat', 'black', 'loud', 'a']], ['fat', 'black', 'loud', 'a'], '0']
print(e5)               #[['never', 'love', ['fat', 'black', 'loud', 'a']], ['fat', 'black', 'loud', 'a'], '0']
# insert同样存在 「列表同步」问题,改为 「深拷贝」即可
a = [1,2,3]
e1.insert(2, a)  # 添加列表a,换成深拷贝就不会出问题cp.deepcopy(a)
a.append(4)  # 列表a发生变化
print(e1)  # 列表同步发生变化

#sort排序只能对纯数字或者纯字符串的列表排序,整型和浮点型可以相互转换就可以排序,当元素之间的类型不能够互相转换时,例如整数和字符串就会报错
#sort排序,2个参数,key,reverse
# key参数指的是为列表的元素一一标记权值,并按照元素所对应的权值来排序元素。key=函数名,该函数的返回值作为元素的权值大小。
# reverse 默认升序,=True是降序
a = [(4, 2), (3, 2), (4, 4), (2, 4)]
a.sort(key=len,reverse=True)    #根据字符串长度排序

a.sort(key=lambda i:i[1])   #利用lambda表达式,按照第2个元素进行升序排序
def cmp(a, b):  # 自定义比较函数
    if(a[0]==b[0]):
        return b[1]-a[1]
    return a[0]-b[0]
#当结果为小于时,返回一个负数;当结果为相等时,返回0;当结果为大于时,返回一个正数。根据返回数的正负,确定2者之间的顺序

A = [(4, 4), (4, 3), (2, 4), (4, 5), (3, 3)]
import functools
A.sort(key=functools.cmp_to_key(cmp))   #Python3的functools包提供了cmp_to_key函数,可以将用户自定义的cmp函数转化为可以被可选参数key接收的对象。
#A.sort(key=functools.cmp_to_key(lambda x,y: x[0]-y[0]))
print(A)        #[(2, 4), (3, 2), (4, 2), (4, 4)]

5.

二.用到的需要了解的

1.python中的函数段,def

def Loveyou1314(s1):
	print('LXX'+s1)

Loveyou1314('我喜欢你,不知你可不可以做我女朋友')

2.lambda匿名函数

(1)lambda是匿名函数,但是可以命名,名字在等号左边

? ? ? ? <函数名>=lambda<参数>:<表达式>

等价于 def <函数名>(<参数>):

? ? ? ? ? ? ? ? <函数体>

? ? ? ? ? ? ? ? return <返回值>

(2)lambda只能包含一个表达式,不能包含复合语句

f = lambda x, y, z: x+y+z  #f是表达式的名字
print(f(1,2,3))  #像函数一样调用

(3)lambda的主体是一个单独的表达式,不是语句也不是一个代码块
?

x = (lambda a = "fee", b = "2", c = "3" : a + b + c)
print(x("acb")) #acb23

3.python导入库的几种方法

(1)将整个模块导入,格式为:import modulename

#import copy
import copy as cp    #as后面是指定的别名
e1=[1]
e5=cp.deepcopy(e1)

模块是指一个可以交互使用,或者从另一Python 程序访问的代码段。
只要导入了一个模块,就可以引用它的任何公共的函数、类或属性。
用import语句导入模块,就在当前的名称空间(namespace)建立了一个到该模块的引用.
这种引用必须使用全称,也就是说,当使用在被导入模块中定义的函数时,必须包含模块的名字。

(2)从某个模块导入某个、多个、全部函数,格式为:

from modname import funcname

from modname import fa, fb, fc

from modname import *

#modname中函数名可以直接用,函数前不用加模块的名字.

与第1种方法的区别:funcname 被直接导入到本地名字空间去了,所以它可以直接使用,而不需要加上模块名的限定。* 表示,该模块的所有公共对象(public objects)都被导入到 当前的名称空间,也就是任何只要不是以”_”开始的东西都会被导入。

如果模块包含的属性和方法与你的某个模块同名,你必须使用import module来避免名字冲突。

尽量少用 from module import * ,因为判定一个特殊的函数或属性是从哪来的有些困难,并且会造成调试和重构都更困难。

还可以百度搜一下,尝试通过代码自动导入缺失的库。

Python中的for循环详情_python_脚本之家 (jb51.net)

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:07:23  更:2022-05-24 18:09:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 15:41:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计