当前位置:脚本大全 > > 正文

python自学编程笔记(Python 编程速成推荐)

时间:2021-10-16 00:30:30类别:脚本大全

python自学编程笔记

Python 编程速成推荐

python是一种非常流行的脚本语言,而且功能非常强大,几乎可以做任何事情,比如爬虫、网络工具、科学计算、树莓派、web开发、游戏等各方面都可以派上用场。同时无论在哪种平台上,都可以用 python 进行系统编程。

机器学习可以用一些 python 库来实现,比如人工智能常用的tensorflow。也可以用像 nltk 这样的 python 库进行自然语言处理(nlp)。

本文讨论基本的 python 编程,后续会写一些 python 编程的实际案例。

操作字符串

python 中的字符串是不可变的,所以不能直接修改。对字符串内容的任何更改都需要产生新的副本。在 python 中处理字符串非常简单。

拼接字符串

  • ?
  • 1
  • 2
  • str = "welcome " + "to python"
  • print (str)
  • 这是字符串连接,你也可以对字符串做乘法操作:

    重复字符串

    str = "python" * 2 print (str)

    与非字符串拼接

    可以用 str() 函数将非字符串的值转换为字符串,然后再连接,如下所示:

  • ?
  • 1
  • 2
  • str = "this is test number " + str(15)
  • print (str)
  • 搜索子字符串

    可以使用 find() 方法搜索子字符串,如下所示:

  • ?
  • 1
  • 2
  • str = "welcome to python"
  • print(str.find("python"))
  • 如果找到了字符串"python",则 find 方法会返回第一次出现这个字符串的位置。

    如果没有找到,则返回 -1。

    find 函数默认从第一个字符开始搜索,也可以从第n个字符开始,如下所示:

  • ?
  • 1
  • 2
  • str = "welcome to python"
  • print(str.find("python",12))
  • 因为我们从第12个字符开始,所以找不到 python 这个单词,所以它会返回 -1。

    获取子字符串

    所以我们得到了我们要搜索的字符串的索引,现在我们要打印匹配的字符串。

    你可以按索输出印字符串,如下所示:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • str = "first second third"
  • print(str[:2])
  • print(str[2:])
  • print(str[3:5])
  • print(str[-1])
  • 在第 2 行的代码会打印第一个和第二个字符,而第 3 行会从第二个字符开始打印到结束。要注意代码中结冒号的位置。字符串从 0 开始计数。

    如果使用负数,则会从最后开始计数。第 5 行代码会打印最后一个字符。

    替换字符串

    你可以用如下方法替换字符串:

  • ?
  • 1
  • 2
  • 3
  • str = "this website is about programming"
  • str2 = str.replace("this", "that")
  • print(str2)
  • 如果你想替换的字符串多次出现,但是只想替换第一次出现的,可以指定位置:

  • ?
  • 1
  • 2
  • 3
  • str = "this website is about programming i like this website"
  • str2 = str.replace("website", "page",1)
  • print(str2)
  • 第一个词只被替换了。

    去除字符串两端的空格

    可以用 strip 方法去掉字符串两端的空格,如下所示:

  • ?
  • 1
  • 2
  • str = " this website is about programming "
  • print(str.strip())
  • 你可以用rstrip仅去除最右的空格,或者用 lstrip 去除最左边的空格。

    改变字符大小写

    在某些情况下你可能需要改变字符的大小写。

  • ?
  • 1
  • 2
  • 3
  • str="welcome to likegeeks"
  • print(str.upper())
  • print(str.lower())
  • 将字符串转换为数字

    前面学到了用 str()函数将数字转为字符串,但这不是 python 中唯一的转换函数,另外还有 int() 、float()、long()和其他强制转换函数。

    int() 可以把输入的字符串转为整数,float() 函数将字符串转为float。

  • ?
  • 1
  • 2
  • 3
  • 4
  • str="10"
  • str2="20"
  • print(str+str2)
  • print(int(str)+int(str2))
  • 第 3 行只是连接两个字符串,而第 4 行把两个值相加并输出结果。

    字符串计数

    可以用min()找到字符串中 ascii 值最小的字符,max()找到最大的字符,用len()函数得到字符的总长度。

  • ?
  • 1
  • 2
  • 3
  • 4
  • str="welcome to python"
  • print(min(str))
  • print(max(str))
  • print(len(str))
  • 迭代字符串

    可以用 for 迭代字符串并单独操作每个字符,如下所示:

  • ?
  • 1
  • 2
  • 3
  • str="welcome to likegeeks website"
  • for i in range(len(str)):
  •  print(str[i])
  • 其中 len() 函数用来得到字符串的长度。

    字符串编码

    如果你使用的是python 3,默认情况下所有字符都是 unicode 字符集编码,但是如果用的是python 2,可能需要对字符串进行编码,如下所示:

  • ?
  • 1
  • 2
  • str="welcome to python"
  • str.encode('utf-8')
  • 操作数字

    在 python 中定义数字变量的方式如下:

    a=15

    可以定义整数,也可以定义浮点数。

    浮点数可以用 int()函数进行舍入,如下所示:

  • ?
  • 1
  • 2
  • a=15.5
  • print(int(a))
  • 舍入数字

    可以用 round() 函数对数字进行舍入:

  • ?
  • 1
  • 2
  • a=15.5652645
  • print(round(a,2))
  • 只需指定需要舍入到小数点后几位。

    自定义精度的数字

    很多情况下会用到自定义精度的浮点数。

    可以处理用户自定义精度数的 decimal 模块。

    这样导入模块并使用:

  • ?
  • 1
  • 2
  • 3
  • from decimal import *
  •  
  • a=decimal(5.5)
  • 生成随机数

    python 中的 random 模块提供了生成随机数的函数。

  • ?
  • 1
  • 2
  • 3
  • import random
  •  
  • print(random.random())
  • 生成的随机数介于 0.0 和 1.0 之间。

    可以从自己定义的范围中生成一个随机数,如下所示:

  • ?
  • 1
  • 2
  • 3
  • 4
  • import random
  •  
  • numbers=[1,2,3,4,5,6,7]
  • print(random.choices(numbers))
  • 操作日期和时间

    你可以从日期中提取所需的值,如下所示。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • import datetime
  •  
  • cur_date = datetime.datetime.now()
  • print(cur_date)
  • print(cur_date.year)
  • print(cur_date.day)
  • print(cur_date.weekday())
  • print(cur_date.month)
  • print(cur_date.time())
  • 可以得到两个时间或日期之间的差,如下所示:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • import datetime
  •  
  • time1 = datetime.datetime.now()
  • time2 = datetime.datetime.now()
  • timediff = time2 - time1
  • print(timediff.microseconds())
  • 上例中的 timediff 变量是 timedelta 类型的对象,你也可以自己创建这种对象:

  • ?
  • 1
  • 2
  • 3
  • 4
  • time1 = datetime.datetime.now()
  • time2 = datetime.timedelta(days=3)
  • time3=time1+time2
  • print(time3.date())
  • 格式化日期和时间

    可以用 strftime() 格式化日期或时间。

    下表指定了一些常用的格式选项:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • %y 两位数的年份表示(00-99
  • %y 四位数的年份表示(000-9999
  • %m 月份(01-12
  • %d 月内中的一天(0-31
  • %h 24小时制小时数(0-23
  • %i 12小时制小时数(01-12
  • %m 分钟数(00=59
  • %s 秒(00-59
  • %a 本地简化星期名称
  • %a 本地完整星期名称
  • %b 本地简化的月份名称
  • %b 本地完整的月份名称
  • %c 本地相应的日期表示和时间表示
  • %j 年内的一天(001-366
  • %p 本地a.m.或p.m.的等价符
  • %u 一年中的星期数(00-53)星期天为星期的开始
  • %w 星期(0-6),星期天为星期的开始
  • %w 一年中的星期数(00-53)星期一为星期的开始
  • %x 本地相应的日期表示
  • %x 本地相应的时间表示
  • %z 当前时区的名称
  • %% %号本身
  • import datetime
  •  
  • date1 = datetime.datetime.now()
  • print(date1.strftime('%d. %b %y %i:%m%p'))
  • 从字符串创建日期

    可以用 strptime()函数从字符串创建日期,如下所示:

    date1=datetime.datetime.strptime(“2015-11-21”, “%y-%m-%d”)

    也可以像这样创建:

    date1= datetime.datetime(year=2015, month=11, day=21)

    处理文件系统

    在 python 中处理文件非常容易,不管你信不信,在所欲语言中是是最简单的。当然你也可以说 python 是一种做什么事情都最简单的语言。

    复制文件

    shutil 模块中包含用于复制文件的功能。

  • ?
  • 1
  • 2
  • import shutil
  • copied_path = shutil.copy('my_file.txt', 'copied_file.txt')
  • 如果 my_file.txt 是一个软连接的话,那么上面的代码将会把 copied_file.txt 创建为独立的文件。

    你也可以创建一个软链接的副本,如下所示:

    copied_path = shutil.copy('my_file.txt', 'copied_file.txt',follow_symlinks=false)

    移动文件

    你可以像这样移动一个文件:

  • ?
  • 1
  • 2
  • import shutil
  • shutil.move('file1.txt', 'file3.txt')
  • 也可以使用 os 模块中的 rename 函数重命名文件,如下所示:

  • ?
  • 1
  • 2
  • import os
  • os.rename('file1.txt', 'file3.txt')
  • 读写文本文件

    可以用 open 函数打开文件,然后再用 read 或write 方法进行读写。

  • ?
  • 1
  • 2
  • 3
  • fd = open('file1.txt')
  • content = fd.read()
  • print(content)
  • 首先,使用 open 函数打开文件并读取,然后我再用 read 函数读取文件内容,最后,将得到的内容放入变量 content 中。

    你可以指定 read()()函数读取的字节数:

    fd.read(20)

    如果文件不是太大的话,你可以将整个内容读入一个列表,然后再遍历列表打印输出。

  • ?
  • 1
  • 2
  • content = fd.readlines()
  • print(content[0])
  • 可以通过指定打开的模式来写入文件。有两种写入模式,即写入模式和追加模式。

    下面是写入模式,会覆盖掉文件中的旧内容。

  • ?
  • 1
  • 2
  • fd = open('file1.txt','w')
  • content = fd.write('your content goes here')
  • 下面是附加模式:

  • ?
  • 1
  • 2
  • fd = open('file1.txt','a')
  • content = fd.write('your content goes here')
  • 创建目录

    可以用 os模块中的 mkdir 函数创建一个新目录,如下所示:

  • ?
  • 1
  • 2
  • 3
  • import os
  •  
  • os.mkdir('./newfolder)
  • 如果目录已经存在将会引发错误。不过不用担心,在以后的文章中会讨论异常处理,可以帮你避免此类错误。

    获取访问和修改以及创建时间可以用 getmtime()、 getatime() 和 getctime() 分别获取修改时间、访问时间和创建时间。

    返回的时间格式为 unix 时间戳,我们可以把它转换为人类可读的格式,如下所示:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • import os
  • import datetime
  •  
  • tim=os.path.getctime('./file1.txt')
  • print(datetime.datetime.fromtimestamp(tim))
  • 迭代文件

    你可以用 os 模块中的 listdir() 函数来获取文件:

  • ?
  • 1
  • 2
  • 3
  • 4
  • import os
  •  
  • files = os.listdir('.')
  • print(files)
  • 此外,你可以用 glob 模块执行相同的操作:

  • ?
  • 1
  • 2
  • 3
  • import glob
  • files = glob.glob('*')
  • print(files)
  • 你可以为 glob()设定任何一种扩展名,例如设定为 * .doc 获取所有word文档。

    序列化python对象

    此过程用于将 python 对象序列化为字节流,以便以后重用。

    你可以用 pickle 模块做到这一点:

  • ?
  • 1
  • 2
  • 3
  • 4
  • import pickle
  •  
  • fd = open('myfile.pk ', 'wb')
  • pickle.dump(mydata,fd)
  • 可以用 load() 函数反序列化此数据,如下所示:

  • ?
  • 1
  • 2
  • 3
  • 4
  • import pickle
  •  
  • fd = open('myfile.pk ', 'rb')
  • mydata = pickle.load(fd)
  • 压缩文件

    python 标准库使你可以处理不同格式的压缩文件,如tar,zip,gzip,bzip2。

    要处理 zip文件,你可以使用 zipfile模块:

  • ?
  • 1
  • 2
  • 3
  • 4
  • import zipfile
  •  
  • my_zip = zipfile.zipfile('zipped_file.zip', mode='r')
  • print(file.namelist())
  • 你可以把一个文件压缩成 zip 格式,如下所示:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • import zipfile
  •  
  • file=zipfile.zipfile('files.zip','w')
  • file.write('file1.txt')
  • file.close()
  • 可以用 extractall() 方法提取 zip 压缩包中的文件:

  • ?
  • 1
  • 标签:

    猜您喜欢