栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python学习——基本语法知识

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python学习——基本语法知识

python基本语法知识 (一) 基本数据类型

Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典) 一、Number(数字)

    利用isinstance 和 type判断变量所指的对象类型。

区别:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。

 class A:
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(), A)
True
>>> type(A()) == A 
True
>>> isinstance(B(), A)
True
>>> type(B()) == A
False
    数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
>>> 1/3
0.3333333333333333
>>> 1//3
0
>>> 8/3
2.6666666666666665
>>> 8//3
2
    在混合计算时,Python会把整型转换成为浮点数。
>>> 1+2.0
3.0
>>> 1+2
3
数学函数

随机数函数

三角函数

数字常量

pi 数学常量 pi(圆周率,一般以π来表示)e 数学常量 e,e即自然常数(自然常数)。

*函数具体使用方法详情看:https://www.runoob.com/python3/python3-number.html

二、String(字符串)
    使用引号( ’ 或 " )来创建字符串。字符串截取语法:变量[头下标:尾下标] 从前面索引以0为开始值 从后面索引以-1为末尾的开始位置。
str='yyqxmman'
>>> print(str)
yyqxmman
>>> print(str[0:-1])
yyqxmma
>>> print(str[2:5])
qxm
>>> print(str[2:-2])
qxmm
>>> print(str[2:])
qxmman
>>> print(str *2)
yyqxmmanyyqxmman
>>> print(str+"love")
yyqxmmanlove

2.Python 使用反斜杠 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:

>>> print('yynqx')
yy
qx
>>> print(r'yynqx')
yynqx
    Python 无单字符类型,一个字符就是长度为1的字符串。与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm’会导致错误。
>>> word = 'yyqxmman'
>>> print(word[0],word[5])
y m
>>> print(word[-1],word[-8])
n y
>>> word[0]='m'
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'str' object does not support item assignment
    Python三引号
    允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
errHTML = '''

Friends CGI Demo

ERROR

%s

''' cursor.execute(''' CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ''')
    f-string
    f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。
>>> name = 'Runoob'
>>> f'Hello {name}'  # 替换变量
'Hello Runoob'
>>> f'{1+2}'         # 使用表达式
'3'

>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'
    字符串内建函数

capitalize() 将字符串的第一个字符转换为大写center(width, fillchar) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
*还有很多,详见:https://www.runoob.com/python3/python3-string.html 三、List(列表)

    序列中的每个值都有对应的位置值,称之为索引,第一个索引是 0,第二个索引是 1,依此类推。列表和元组都是序列列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。列表是写在方括号 [] 之间、用逗号分隔开的元素列表。列表截取语法格式(与字符串相同)
    变量[头下标:尾下标]
>>> list = ['yyqx',1128,11.28,'mman',1.028]
>>> tinylist = [123,'lalala']
>>> print(list)
['yyqx', 1128, 11.28, 'mman', 1.028]
>>> print(list[0])
yyqx
>>> print(list[0:4])
['yyqx', 1128, 11.28, 'mman']
>>> print(list[2:-1])
[11.28, 'mman']
>>> print(list*2)
['yyqx', 1128, 11.28, 'mman', 1.028, 'yyqx', 1128, 11.28, 'mman', 1.028]
>>> print(list+tinylist)
['yyqx', 1128, 11.28, 'mman', 1.028, 123, 'lalala']
    不同于Python 字符串不能被改变,列表中的元素是可以改变的。
>>> a=[1,2,3,4,5]
>>> a[0]=9
>>> a[2:4]=[10,11]
>>> a
[9, 2, 10, 11, 5]
>>> a[2:4]=[]
>>> a
[9, 2, 5]
    list还有许多方法,类似于append(),pop()等。
    5.Python 列表截取可以接收第三个参数,参数作用是截取的步长,如果第三个参数为负数表示逆向读取。
def reverseWords(input):
     
    # 通过空格将字符串分隔符,把各个单词分隔为列表
    inputWords = input.split(" ")
 
    # 翻转字符串
    # 假设列表 list = [1,2,3,4],  
    # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
    # inputWords[-1::-1] 有三个参数
    # 第一个参数 -1 表示最后一个元素
    # 第二个参数为空,表示移动到列表末尾
    # 第三个参数为步长,-1 表示逆向
    inputWords=inputWords[-1::-1]
 
    # 重新组合字符串
    output = ' '.join(inputWords)
     
    return output
 
if __name__ == "__main__":
    input = 'I like runoob very much'
    rw = reverseWords(input)
    print(rw)

输出:much very runoob like I

    列表函数以及方法

len() 列表元素个数max() 列表元素最大值min() 列表元素最小值list() 将元组转换为列表list.append(obj) 在列表末尾添加新的对象
等等:https://www.runoob.com/python3/python3-list.html 四、Tuple(元组)

1.元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开,列表使用方括号【】。与列表相同的是元组中的元素类型也可以不相同。
元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取(看上面,这里不再赘述)。
可以把字符串看作一种特殊的元组。

>>> tuple=('yyqx',1128,1,28,'mman',123)
>>> tinytuple = (123,'yyqx')
>>> print(tuple)
('yyqx', 1128, 1, 28, 'mman', 123)
>>> print(tuple[0])
yyqx
>>> print(tuple[0:4])
('yyqx', 1128, 1, 28)
>>> print(tuple[2:-1])
(1, 28, 'mman')
>>> print(tuple*2)
('yyqx', 1128, 1, 28, 'mman', 123, 'yyqx', 1128, 1, 28, 'mman', 123)
>>> print(tuple+tinytuple)
('yyqx', 1128, 1, 28, 'mman', 123, 123, 'yyqx')

2.元组与字符串一样,不可修改其中元素。但元组中可包含可改变的list列表。

>>> tuple[0]='lalalal'
Traceback (most recent call last):
  File "", line 1, in 
TypeError: 'tuple' object does not support item assignment
>>> tup=([1,2,3,4],1,'yyqx')
>>> print(tup[0])
[1, 2, 3, 4]

3.构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

tup1 = ()    # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
五、Set(集合)
    集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。集合(set)是一个无序的不重复元素序列。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
parame = {value01,value02,...}
或者
set(value)
    集合中重复的元素会被自动删除,同时集合可以进行成员测试,测试元素是否在集合中
#!/usr/bin/python3

sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu','Taobao'}

print(sites)   # 输出集合,重复的元素被自动去掉

# 成员测试
if 'Runoob' in sites :
    print('Runoob 在集合中')
else :
    print('Runoob 不在集合中')

输出:
{‘Baidu’, ‘Zhihu’, ‘Facebook’, ‘Google’, ‘Runoob’, ‘Taobao’}
Runoob 在集合中

    使用set(value)创建集合,a = set(‘abracadabra’)中每个字母为集合元素。
a = set('abracadabra')
>>> b = set('alacazam')
>>> print(a)  #自动删除重复元素
{'r', 'd', 'a', 'c', 'b'}
>>> print(a-b) #a和b差集
{'b', 'r', 'd'}
>>> print(a|b) #a和b并集
{'r', 'z', 'd', 'l', 'a', 'c', 'm', 'b'}
>>> print(a&b) #a和b交集
{'c', 'a'}
>>> print(a^b) #a和b中不同时存在的元素
{'m', 'b', 'r', 'z', 'd', 'l'}
    集合内置方法
    add() 使用set.add(elem)添加元素
    clear()
    等:https://www.runoob.com/python3/python3-set.html
六、Dictionary(字典)
    字典(dictionary)是Python中一个非常有用的内置数据类型。列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
    字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
    键(key)必须使用不可变类型。
    在同一个字典中,键(key)必须是唯一的。
#第一种构造字典方式
dict={}
>>> dict['one'] = "yyqx"
>>> dict[2]     = "2mman"

>>> print (dict['one'])#输出键为 'one' 的值
yyqx
>>> print (dict[2])#输出键为 2 的值
2mman
#第二种构造字典方式
>>> tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
>>> print (tinydict)
{'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
>>> print (dict)
{'one': 'yyqx', 2: '2mman'}
>>> print (tinydict.keys())#输出所有键
dict_keys(['name', 'code', 'site'])
>>> print (tinydict.values())#输出所有值
dict_values(['runoob', 1, 'www.runoob.com'])
    构造函数 dict() 可以直接从键值对序列中构建字典如下:
>>> dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)])
{'Runoob': 1, 'Google': 2, 'Taobao': 3}

>>> {x: x**2 for x in (2, 4, 6)}#字典推导式
{2: 4, 4: 16, 6: 36}

>>> dict(Runoob=1, Google=2, Taobao=3)
{'Runoob': 1, 'Google': 2, 'Taobao': 3}

字典是一种映射类型,它的元素是键值对。字典的关键字(key)必须为不可变类型,且不能重复。创建空字典使用 { }。

    字典内置函数和方法:

len(dict) 计算字典元素个数,即键的总数。str(dict) 输出字典,可以打印的字符串表示。type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。dict.clear() 删除字典内所有元素dict.copy() 返回一个字典的浅复制
等等:https://www.runoob.com/python3/python3-dictionary.html 总结

Python3 中有六个标准的数据类型:

Number(数字)String(字符串)List(列表)Tuple(元组)Set(集合)Dictionary(字典)

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

(二)数据类型转换

隐式类型转换(自动)显示类型转换 (类型函数) 一、隐式类型转换

Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。

对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。

 int=123
>>> flo=1.23
>>> new=int+flo
>>> new
124.23
>>> print("datatype of int:",type(int))
datatype of int: 
>>> print("datatype of flo:",type(flo))
datatype of flo: 
>>> print("datatype of new:",type(new))
datatype of new: 
二、显式类型转换

使用 int()、float()、str() 等预定义函数来执行显式类型转换。

int() 强制转换为整型float() 强制转换为浮点型str() 强制转换为字符串类型repr()强制转换为表达式字符串eval()计算在字符串中的有效Python表达式,并返回一个对象tuple()转换为一个元组list()转换为一个列表set()转换为可变集合dict()创建字典frozenset()转变为不可变集合chr()将整数转变为字符ord()字符转换为整数hex()整数转换为十六进制字符串oct()整数转换为八进制字符串 (三)python推导式

列表(list)推导式字典(dict)推导式集合(set)推导式元组(tuple)推导式 一、列表(list)推导式

    [表达式 for 变量 in 列表]
    [out_exp_res for out_exp in input_list]

    [表达式 for 变量 in 列表 if 条件]
    [out_exp_res for out_exp in input_list if condition]

>>> names = ['Bob','Tom','alice','Jerry','Wendy','Smith']
#过滤长度小于等于3的字符串列表,并将剩下的转换成大写字母后输出
>>> new_names = [name.upper()for name in names if len(name)>3]
>>> new_names
['ALICE', 'JERRY', 'WENDY', 'SMITH']
二、字典推导式
    { key_expr: value_expr for value in collection }{ key_expr: value_expr for value in collection if condition }

eg1:使用列表中字符串值为键,各字符串的长度为值,组成字典

>>> listdemo = ['Google','Runoob', 'Taobao']
>>> newdict = {key:len(key) for key in listdemo}
>>> newdict
{'Google': 6, 'Runoob': 6, 'Taobao': 6}

eg2:提供三个数字,以三个数字为键,三个数字的平方为值来创建字典

>>> dic = {x: x**2 for x in (2, 4, 6)}
>>> dic
{2: 4, 4: 16, 6: 36}
三、集合推导式
    { expression for item in Sequence }{ expression for item in Sequence if conditional }

eg1:数字 1,2,3 的平方数

>>> setnew = {i**2 for i in (1,2,3)}
>>> setnew
{1, 4, 9}

eg2:判断不是 abc 的字母

>>> a = {x for x in 'abracadabra' if x not in 'abc'}
>>> a
{'d', 'r'}
四、元组推导式

元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。

>>> a = (x for x in range(1,10))#返回生成器对象
>>> a
 at 0x01358E70>
>>> tuple(a)
(1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> a = [x for x in range(1,10)]#列表推导式
>>> a
[1, 2, 3, 4, 5, 6, 7, 8, 9]
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/744685.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号