Python基础入门

    科技2022-08-01  89


    title: Python语法基础入门

    date: 2020-09-30 17:44:18

    tags:

    - Python - 基础语法

    一、基础

    1. Python3 基础数据类型:

    1.1 标准数据类型:

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

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

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

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

    1.2 Number(数字):

    Python3 支持 int、float、bool、complex(复数)。

    在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。

    可以使用type() 、isinstance() 函数来查询变量所指的对象类型,不同的是type() 不会认为子类是一种父类类型,而 isinstance() 会认为子类是一种父类类型。

    !注意:

    1、Python可以同时为多个变量赋值,如a, b = 1, 2。2、一个变量可以通过赋值指向不同类型的对象。3、数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。4、在混合计算时,Python会把整型转换成为浮点数。

    1.3 String(字符串):

    Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 ** 转义特殊字符。

    字符串的截取的语法格式: 变量[头下标:尾下标]

    Python 使用反斜杠 \转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串: >>> print('Ru\noob') Ru oob >>> print(r'Ru\noob') Ru\noob >>> Python字符串格式化输出

    方式(1):在Python中,采用的格式化方式和C语言是一致的,用 %实现,举例如下:

    >>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'

    方式(2):format()

    方式(3):f-string

    Python中的字符串处理函数:

    find():检测字符串是否包含特定字符,如果包含,则返回开始的索引;否则,返回-1。

    ## find()函数 str = 'hello world' # 'wo'在字符串中 print( str.find('wo') ) # 'wc'不在字符串中 print( str.find('wc') ) ## 输出: ## 6 ## -1

    index():检测字符串是否包含指定字符,如果包含,则返回开始的索引值;否则,提示错误。

    ## index()函数 str = 'hello world' # 'wo'在字符串中 print( str.index('wo') ) # 'wc'不在字符串中,程序报错ValueError,终止运行 print( str.index('wc') ) ## 输出: ## 6 ## ValueError: substring not found

    count():返回str1在string中指定索引范围内[start, end)出现的次数。

    str = 'hello world' # 统计str中全部字母l的个数 print( str.count('l') ) # 统计str中从第5+1个字母到最后一个字母中,字母l的个数 print( str.count('l', 5, len(str)) )

    replace():str.replace(str1,str2, count) ----- 将str中的str1替换成str2,如果指定count,则不超过count次。

    str = 'hello world hello world' str1 = 'world' str2 = 'waltsmith' # 将所有的str1替换为str2 print( str.replace(str1, str2) ) # 只将前1个str1替换为str2 print( str.replace(str1, str2, 1) ) ## 输出: ## hello waltsmith hello waltsmith ## hello waltsmith hello world

    split():str.split(‘分界符’, maxSplit)

    print(str3.split(' ', 3)) # 以字母o作为分界符,指定最大分割为2,将返回最大分割+1个元素的列表

    capitalize():将字符串的首字母大写,其余字母全部小写

    str.capitalize()

    title():将字符串中的所有单词的首字母大写,其余字母全部小写;值得注意的是,这里单词的区分是以任何标点符号区分的

    str.title()

    startswith():检查字符串str是否 以字符串str1开头,若是,则返回True;否则,返回False;

    str.startswith(str1)

    lower():将字符串的所有字母转换为小写;

    str.lower()

    upper():将字符串的所有字母转换为大写;

    str.upper()

    endswith():检查字符串str是否 以字符串str1结尾,若是,则返回True;否则,返回False;

    str.endswith(str1)

    ljust():将字符串左对齐,并使用空格填充至指定长度len;

    str.ljust(len) 同理右对齐 :str.rjust(len) 居中对齐:str.center()

    lstrip():去掉字符串左边的空白字符

    str.lstrip() 同理去除右边的:str.rstrip() 去除两边的:str.strip()

    partition():根据str中的第一个str1,将字符串str分割为str1之前,str1和str1之后三个部分;若str1不存在,则将str作为第一部分,后面两个元素为空;返回元组;

    str.partition(str1) str14 = "Are you believe in yourself?" # "yourself"在字符串中 print(str14.partition("yourself")) # "you"在字符串中有两个 print(str14.partition("you")) # "walt"不在字符串中 print(str14.partition("walt")) ## 输出: ## ('Are you believe in ', 'yourself', '?') ## ('Are ', 'you', ' believe in yourself?') ## ('Are you believe in yourself?', '', '')

    join():将iterable中每两个相邻元素中间插入字符串str,返回形成的新的字符串;

    str.join(iterable) str15 = "walt" print(str15.join("ABC")) iterable = ['YOU', 'THEY', 'WE'] print(str15.join(iterable)) ## 输出: ## AwaltBwaltC ## YOUwaltTHEYwaltWE

    isspace():如果字符串str中只包含空格,则返回True;否则,返回False;

    isdigit():如果字符串str中只包含数字,则返回True;否则,返回False;

    isalpha():如果字符串str中只包含字母,则返回True;否则,返回False;

    字符编码:

    !注意:

    1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。2、字符串可以用+运算符连接在一起,用*运算符重复。3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。4、Python中的字符串不能改变。

    1.4 List(列表):

    列表和字符串一样都能进行截取和索引,不同的是列表中的元素是可以改变的

    列表的截取: list = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ] tinylist = [123, 'runoob'] print (list) # 输出完整列表 print (list[0]) # 输出列表第一个元素 print (list[1:3]) # 从第二个开始输出到第三个元素 print (list[2:]) # 输出从第三个元素开始的所有元素 print (tinylist * 2) # 输出两次列表 print (list + tinylist) # 连接列表 结果: ['abcd', 786, 2.23, 'runoob', 70.2] abcd [786, 2.23] [2.23, 'runoob', 70.2] [123, 'runoob', 123, 'runoob'] ['abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob'] # !注意:Python列表可以截取接收第三个参数,参数作用是截取的步长,如果第三个为负数,表示逆向截取 inputWords=input() inputWords=inputWords[-1::-1] print(inputWords) 改变列表中的元素: >>> a = [1, 2, 3, 4, 5, 6] >>> a[0] = 9 >>> a[2:5] = [13, 14, 15] >>> a [9, 2, 13, 14, 15, 6] >>> a[2:5] = [] # 将对应的元素值设置为 [] >>> a [9, 2, 6] 常用函数: (1). 用len()函数获取list集合的元素个数: len(classmates) (2). 将元素添加到List尾部: classmates.append('asdfa') 删除list末尾的元素: classmates.pop() (3). 把元素插入到指定的位置: classmates.insert(1,'jack') 删除指定位置的元素:classmates.pop(i) ------i是索引的位置 删除具体的元素值:classmates.remove(value) -----value是具体的元素值 (4). 把某个元素换成别的元素,直接赋值给对应的索引位置: classmates[1] = 'ssfa'

    1.5 Tuple(元组):

    元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

    tuple = ( 'abcd', 786 , 2.23, 'runoob', 70.2 ) tinytuple = (123, 'runoob') print (tuple) # 输出完整元组 print (tuple[0]) # 输出元组的第一个元素 print (tuple[1:3]) # 输出从第二个元素开始到第三个元素 print (tuple[2:]) # 输出从第三个元素开始的所有元素 print (tinytuple * 2) # 输出两次元组 print (tuple + tinytuple) # 连接元组 # 结果: ('abcd', 786, 2.23, 'runoob', 70.2) abcd (786, 2.23) (2.23, 'runoob', 70.2) (123, 'runoob', 123, 'runoob') ('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')

    !注意:

    1、与字符串一样,元组的元素不能修改。2、元组也可以被索引和切片,方法一样。3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。4、元组也可以使用+操作符进行拼接。

    1.6 Set(集合):

    集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。

    基本功能是进行成员关系测试和删除重复元素。

    可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    创建格式: parame = {value01,value02,.....} # 或者 set(value) -----这个value可以是list集合: 例如: >>> s = set([1, 2, 3]) >>> s {1, 2, 3} set进行集合运算: # set可以进行集合运算 a = set('abracadabra') b = set('alacazam') print(a) print(a - b) # a 和 b 的差集 print(a | b) # a 和 b 的并集 print(a & b) # a 和 b 的交集 print(a ^ b) # a 和 b 中不同时存在的元素 常用方法: (1):add(key)方法添加元素到set中---- s.add(4)

    1.7 Dictionary(字典):

    字典(dictionary)是Python中另一个非常有用的内置数据类型。

    列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

    字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

    键(key)必须使用不可变类型。

    在同一个字典中,键(key)必须是唯一的。

    dict = {} dict['one'] = "1 - 菜鸟教程" dict[2] = "2 - 菜鸟工具" tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'} print (dict['one']) # 输出键为 'one' 的值 print (dict[2]) # 输出键为 2 的值 print (tinydict) # 输出完整的字典 print (tinydict.keys()) # 输出所有键 print (tinydict.values()) # 输出所有值 dict.pop('one') # 删除dict中对应键的值 ''' 输出结果 1 - 菜鸟教程 2 - 菜鸟工具 {'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'} dict_keys(['name', 'code', 'site']) dict_values(['runoob', 1, 'www.runoob.com']) ''' 构造方法-----空对象 dict= {} 运用dict() 构造函数 sss=dict([('runnob',1),('google',2)]) print(sss) ddd=dict(key1=1,key2=2,key3=3) print(ddd)

    !注意:

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

    2. Python3 运算符:

    2.1 Python逻辑运算符:

    2.2 Python成员运算符:

    2.3 Python身份运算符:

    2.4 数学函数:

    2.5 随机数:

    choice(seq)

    此处的 seq 必须是有序的序列,返回序列中的一个随机项。

    from random import * c1 = choice([1, 2, 3, 4, 5]) c2 = choice((1, 2, 3, 4, 5)) c3 = choice(range(1, 11)) print(c1, c2, c3) randint(start,end)

    返回 [start, end] 之间的一个随机整数。包头又包尾。

    from random import * r = randint(1, 5) print(r) random()

    返回一个 [0, 1) 的随机浮点数。

    from random import * print(random()) print(round(random(), 3)) uniform(a,b)

    返回 [a, b] 之间的一个随机浮点数。

    注:a和b接受的数据大小随意。例如:random.uniform(10,20) 和 random.uniform(20,10)

    from random import * print(uniform(10, 20)) print(uniform(20, 10)) print(uniform(30, 30)) randrange(start,end,step)

    从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为

    print(randrange(0, 10, 2)) sample(seq,number)

    从 seq 中随机取出 number 个元素,以列表的形式返回。此处 seq 可以是有序,也可以是无序。

    print(sample({1, 2, 3, 4, 5}, 3)) print(sample('abcdefg', 3)) # ['f', 'c', 'd'] shuffle(lt)

    将 lt (列表对象) 中的元素打乱。

    lt = ['a', 'b', 'c', 'd', 'e', 'f'] shuffle(lt) # 类似洗牌 print(lt)

    2.6 三角函数:

    3. Python数据格式与JSON数据格式的互相转化:

    3.1 JSON数据格式介绍:

    JSON 值可以是:

    数字(整数或浮点数)

    字符串(在双引号中)

    逻辑值(true 或 false)

    数组(在中括号中)

    对象(在大括号中)

    null

    JSON 使用 JavaScript 语法

    因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。

    通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:

    实例:

    var sites = [

    { “name”:“百度” , “url”:“www.baidu.com” },

    { “name”:“淘宝” , “url”:“www.taobao.com” },

    ];

    可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):

    sites[0].name;

    返回的内容是:

    百度

    可以像这样修改数据:

    sites[0].name=“baidu”;

    JSON 文件

    JSON 文件的文件类型是 “.json”

    JSON 文本的 MIME 类型是 “application/json”

    3.2 JSON编码与解码:

    Python3 JSON 数据解析:

    json.dumps(python_value,ensure_ascii=False): 对数据进行编码,将python数据格式转化为JSON 格式,不使用ascii码格式。

    json.loads(): 对数据进行解码,将JSON数据格式转化为python格式。

    实例:

    import json

    data = [ { ‘a’ : 4, ‘b’ : 5, ‘c’ : 6, ‘d’ : 7, ‘e’ : 8 } ]

    json = json.dumps(data)

    print json

    以上代码执行结果为:

    [{“a”: 4, “c”: 5, “b”: 6, “e”: 7, “d”: 8}]

    以下实例展示了Python 如何解码 JSON 对象:

    import json

    jsonData = ‘{“a”:4,“b”:5,“c”:6,“d”:7,“e”:8}’;

    text = json.loads(jsonData)

    print text

    以上代码执行结果为:

    中的第一项(索引从 0 开始):

    sites[0].name;

    返回的内容是:

    百度

    可以像这样修改数据:

    sites[0].name=“baidu”;

    JSON 文件

    JSON 文件的文件类型是 “.json”

    JSON 文本的 MIME 类型是 “application/json”

    3.2 JSON编码与解码:

    Python3 JSON 数据解析:

    json.dumps(python_value,ensure_ascii=False): 对数据进行编码,将python数据格式转化为JSON 格式,不使用ascii码格式。

    json.loads(): 对数据进行解码,将JSON数据格式转化为python格式。

    实例:

    import json

    data = [ { ‘a’ : 4, ‘b’ : 5, ‘c’ : 6, ‘d’ : 7, ‘e’ : 8 } ]

    json = json.dumps(data)

    print json

    以上代码执行结果为:

    [{“a”: 4, “c”: 5, “b”: 6, “e”: 7, “d”: 8}]

    以下实例展示了Python 如何解码 JSON 对象:

    import json

    jsonData = ‘{“a”:4,“b”:5,“c”:6,“d”:7,“e”:8}’;

    text = json.loads(jsonData)

    print text

    以上代码执行结果为:

    {u’a’: 4, u’c’: 5, u’b’: 6, u’e’: 7, u’d’: 8}

    Processed: 0.009, SQL: 8