python语法的学习
Posted 木白星枝
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中单引号和双引号没有区别,都表示字符串
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])
函数 | 描述 |
---|---|
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常用函数了解一下,具体用到可以百度
4.列表:List类型
在Python中,复合数据类型分别有三种:Tuple(元组)、Set(集合)与List(列表)
import functools
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排序,三个参数,cmp,key,reverse,
# reverse 默认升序,=True是降序
a.sort(reverse=True)
a.sort(key=lambda i:i[1]) #利用lambda表达式,按照第2个元素进行升序排序
def cmp(a, b): # 自定义比较函数
if(a[0]==b[0]):
return a[1]-b[1]
return a[0]-b[0]
A = [(4, 2), (3, 2), (4, 4), (2, 4)]
y = A[ : ]
y.sort(key=functools.cmp_to_key(cmp))
print(A) #[(2, 4), (3, 2), (4, 2), (4, 4)]
1.python中的函数段
def Loveyou1314():
print('LXX我喜欢你,不知你可不可以做我女朋友')
Loveyou1314()
2.字符串的结合
Love='LXX我喜欢你,'
you='可不可以做我女朋友呀?'
print(Love + you)
3.
Python中的for循环详情_python_脚本之家 (jb51.net)
以上是关于python语法的学习的主要内容,如果未能解决你的问题,请参考以下文章