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])
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常用函数了解一下,具体用到可以百度

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语法的学习的主要内容,如果未能解决你的问题,请参考以下文章

设法使UltraEdit支持python语法高亮

Python入门 —— 02基础语法

python之路一,python基本语法

python语言是不是允许在一行的末尾加句号?

javascript已经学习的方法

Python学习