浅学Python

2020-06-29  本文已影响0人  cooljoel

Python3简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。


Python基础语法

多行注释可以用多个 # 号,还有 ''' 和 """

例:

# 第一个注释

# 第二个注释

 '''

第三注释

第四注释''' 

"""

第五注释

第六注释

"""

行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

String用法

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

头下标从-1

例:

str='Runoob'

print(str)                # 输出字符串

print(str[0:-1])          # 输出第一个到倒数第二个的所有字符

print(str[0])              # 输出字符串第一个字符

print(str[2:5])            # 输出从第三个开始到第五个的字符

print(str[2:])            # 输出从第三个开始后的所有字符

print(str * 2)            # 输出字符串两次

print(str + '你好')        # 连接字符串

print('------------------------------')

print('hello\nrunoob')      # 使用反斜杠(\)+n转义特殊字符

print(r'hello\nrunoob')    # 在字符串前面添加一个 r,表示原始字符串,不会发生转义

数据类型

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

Number(数字)

String(字符串)

List(列表)

Tuple(元组)

Set(集合)

Dictionary(字典)

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。


List翻转字符串实例用法

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'

    rw = reverseWords(input)

    print(rw)

Tuple(元组)

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

string、list 和 tuple 都属于 sequence(序列)。


Python 中用 elif 代替了 else if,所以if语句的关键字为:if – elif – else

例:

if condition_1:

    statement_block_1

elif condition_2:

    statement_block_2

else:

    statement_block_3

for语句

for <variable> in <sequence>:

    <statements>

else:

    <statements>

break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

迭代器

迭代是访问集合元素的一种方式。

迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

迭代器有两个基本的方法:iter() 和 next()

字符串,列表或元组对象都可用于创建迭代器:

创建一个迭代器

把一个类作为一个迭代器使用需要在类中实现两个方法 __iter__() 与 __next__() 。

__iter__() 方法返回一个特殊的迭代器对象, 这个迭代器对象实现了 __next__() 方法并通过 StopIteration 异常标识迭代的完成。

_next__() 方法会返回下一个迭代器对象

StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况,在 __next__() 方法中我们可以设置在完成指定循环次数后触发 StopIteration 异常来结束迭代。

生成器

在 Python 中,使用了 yield 的函数被称为生成器(generator)。

跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

调用一个生成器函数,返回的是一个迭代器对象。

集合

是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。

可以用大括号({})创建集合。注意:如果要创建一个空集合,你必须用 set() 而不是 {} ;后者创建一个空的字典。

字典

序列是以连续的整数为索引,与此不同的是,字典以关键字为索引,关键字可以是任意不可变类型,通常用字符串或数值。

理解字典的最佳方式是把它看做无序的键=>值对集合。在同一个字典之内,关键字必须是互不相同。

一对大括号创建一个空的字典:{}。

输出格式化

Python两种输出值的方式: 表达式语句和 print() 函数。

第三种方式是使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。

如果你希望输出的形式更加多样,可以使用 str.format() 函数来格式化输出值。

如果你希望将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现。

str(): 函数返回一个用户易读的表达形式。

repr(): 产生一个解释器易读的表达形式

rjust() 方法, 它可以将字符串靠右, 并在左边填充空格。


读写文件

open() 将会返回一个 file 对象 open(filename, mode)

filename:包含了你要访问的文件名称的字符串值。

mode:决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。

常用方法:

f.read()

f.readline()

f.readlines()

f.write()

f.close()

 f.read()

pickle 模块

python的pickle模块实现了基本的数据序列和反序列化。

pickle.dump(obj, file, [,protocol])

x = pickle.load(file)

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file: 必需,文件路径(相对或者绝对路径)。

mode: 可选,文件打开模式

buffering: 设置缓冲

encoding: 一般使用utf8

errors: 报错级别

newline: 区分换行符

closefd: 传入的file参数类型

异常

例:

while True:

     try:

        x = int(input("请输入一个数字: "))

         break

     except ValueError:

         print("您输入的不是数字,请再次尝试输入!") 

else:

     try:

         with open('file.log') as file:

        read_data = file.read()

     except FileNotFoundError as fnf_error:

         print(fnf_error)

finally:

     print('这句话,无论异常是否发生都会执行。')

还可以使用 raise 语句抛出一个指定的异常。

上一篇下一篇

猜你喜欢

热点阅读