python数据分析基础

  1. bash的shebang行
    1)名称含义:在unix中,shebang即指“#!”, 它取自#(SHArp)和!(bang)
    2)作用:它是很多脚本文件中第一行的前两个字符,用来告诉unix系统要用shebang后面指定的解释器来解释此脚本。所以在很多脚本中,第一行往往都是这样写的:
#!/usr/bin/env python3

shebang后面的解释器路径一般来说必须是绝对路径。因为 Windows 系统忽略这一行,像 macOS 这样的基于 Unix 的系统使用这一行,所以加入这一行可以使脚本在不同操作系统的计算
机之间具有可移植性

参考博客

  1. 使用向上箭头得到以前的命令,用ctrl+c停止脚本
  2. 执行py文件
    在win cmd中用python a.py 在macOS中用./a.py
  3. print(“Output #2: Four plus five equals {0:d}.”.format(z))

print 语句中的语法 “{0:d}”.format(z)。花括号({})是一个占位符,表示这里将要
传入 print 语句一个具体的值,这里就是变量 z 的值。0 指向 format() 方法中的第一个参
数,在这里,只包含一个参数 z,所以 0 就指向这个值;相反,如果有多个参数,0 就确定地表示传入第一个参数。

print(“Output #6: {0}”.format(int(8.3)/int(2.7)))

可以对 Python 中所有命名对象调用 type函数,不仅是变量,还有函数、语句等。如果你的代码出现了意外的错误,调用 type函数可以帮助你进行错误诊断。

print("Output #14: {0:s}".format("I'm enjoying learning Python."))
print("Output #14: {0:s}".format('I\'m enjoying learning Python.'))

{0:s} 中的 s 表示传入 print 语句的值应该格式化为一个字符串。
如果用双引号来包含这个字符串的话,就不需要在 “I’m” 的单引号前面使用反斜杠了
使用反斜杠\将一个非常长的字符串分段显示在多个行中,以使它易于理解和编辑。
要注意的是反斜杠\必须是每行的最后一个字符。如果你意外地按了一下空格键,反斜杠后面就会出现一个看不见的空格,脚本就会抛出一个语法错误,不能正常运行。因此,使用 3 个单引号或 3 个双引号来创建多行字符串更稳妥一些
print(“Output #24: {0} {1} {2}”.format(string2_list[1], string2_list[5],
string2_list[-1]))

在这里插入图片描述
使用 3 个单引号和 3个双引号创建多行字符串,打印到屏幕上后也是分行的

print(“Output #19: {0:s} {1:s}{2:s}”.format(“She is”, "very "*4, “beautiful.”))

split函数:
split 函数来将一个字符串拆分成一个子字符串列表,列表中的子字符串正好可以构成原字符串。
split 函数可以在括号中使用两个附加参数。第一个附加参数表示使用哪
个字符进行拆分。第二个附加参数表示进行拆分的次数(例如:进行两次拆分,可以得到3 个子字符串)

string1_list2 = string1.split(" ",2)

join 函数将列表中的子字符串组合成一个字符串。join 函数
将一个参数放在 join 前面,表示使用这个字符(或字符串)在子字符串之间进行组合:
print(“Output #25: {0}”.format(‘,’.join(string2_list)))

replace 函数将字符串中的一个或一组字符替换为另一个或
另一组字符。这个函数在括号中使用两个附加参数,第一个参数是要在字符串中查找替换的字符或一组字符,第二个参数是要用来替换掉第一个参数的字符或一组字符:
string5 = “Let’s replace the spaces in this sentence with other characters.”
string5_replace = string5.replace(" ", “!@!”)

lower、upper 和 capitalize 函数。lower 和 upper 函数分别
用来将字符串中的字母转换为小写和大写。capitalize 函数对字符串中的第一个字母应用
upper 函数,对其余的字母应用 lower 函数:
string6 = “Here’s WHAT Happens WHEN You Use lower.”
print(“Output #34: {0:s}”.format(string6.lower()))
string7 = “Here’s what Happens when You Use UPPER.”
print(“Output #35: {0:s}”.format(string7.upper()))
string5 = “here’s WHAT Happens WHEN you use Capitalize.”
print(“Output #36: {0:s}”.format(string5.capitalize()))

  1. 正则表达式与模式匹配
import re

元字
符(metacharacter)是正则表达式中具有特殊意义的字符。每个元字符都有特殊意义,它们使正则表达式能够匹配特定的字符串。常用的元字符包括 |、()、[]、.、*、+、?、^、$ 和 (?P)。

正则表达式的官网
re模块包括很多函数,例如re.compile、re.search、re.sub、re.ignorecase 和 re.I

# 计算字符串中模式出现的次数
string = "The quick brown fox jumps over the lazy dog."
string_list = string.split()
pattern = re.compile(r"The", re.I)
count = 0
for word in string_list:
 if pattern.search(word):
 count += 1
print("Output #38: {0:d}".format(count))

Line3:
使用 re.compile 和 re.I 函数以及用 r 表示的原始字符串,创建一个名为 pattern
的正则表达式。re.compile 函数将文本形式的模式编译成为编译后的正则表达式。正则
表达式不是必须编译的,但是编译是个好习惯,因为这样可以显著地提高程序运行速度。
re.I 函数确保模式是不区分大小写的,能同时在字符串中匹配“The”和“the”。
原始字符串标志 r 可以确保 Python 不处理字符串中的转义字符,比如 \、\t 或 \n。这样在进行模式匹配时,字符串中的转义字符和正则表达式中的元字符就不会有意外的冲突。在上面的例子中,字符串中没有转义字符,所以 r 不是必需的,但是在正则表达式中使用原始字符串标志是一个好习惯。

import re
string = "The quick brown fox jumps over the lazy dog."
string_list = string.split()
pattern = re.compile(r"(?P<match_word>The)",re.I)#</match_word>
print("Output #39:")
for word in string_list:
    if pattern.search(word):
        print("{:s}".format(pattern.search(word).group('match_word')))
string = "The quick brown fox jumps over the lazy dog."
string_to_find = r"The"
pattern = re.compile(string_to_find, re.I)
print("Output #40: {:s}".format(pattern.sub("a", string)))
#!/usr/bin/env python3
from datetime import date, time, datetime, timedelta
today = date.today()
print("Output #41: today: {0!s}".format(today))

!s 表示传入到 print 语句中的值应该格式化为字符串,尽管它是个数值型数据。最后,你可以使用 year、month 和 day 来捕获具体的日期元素。

  1. python中的lambda函数
    使用lambda关键字来声明一个匿名函数,这就是为什么我们将它们称为“lambda函数”。匿名函数是指没有声明函数名称的函数。尽管它们在语法上看起来不同,lambda函数的行为方式与使用def关键字声明的一般函数相同。以下是Python中 lambda函数的特点:
    lambda函数可以接受任意数量的参数,但函数只能包含一个表达式。表达式是lambda函数执行的一段代码,它可以返回任何值,也可以不返回任何值。
    可以使用以下语法来声明lambda函数:
lambda argument(s):expression
remainder = lambda num: num %2
print(remainder(5))  #output:1

product = lambda x, y: x * y 
print(product(2,3))

为什么要使用lambda函数?
Lambda函数主要在短时间内需要一个函数时才使用。当你想要将函数作为参数传递给高阶函数(即以其他函数作为参数的函数)时,通常使用这种方法。
参考博客

  1. sort 函数改变了原列表的元素顺序,sorted 函数则返回一个新的排好序的列表,并不改变原列表的元素顺序。
  2. 异常处理:
    完整形式的异常处理方法除了 try 和 except 代码块,还包含 else 和 finally 代码块。
    如果 try 代码块成功执行,则会接着执行 else 代码块。因此,如果传递给 try 代码块中的getMean() 函数的数值序列中包含任意数值,那么这些数值的均值就会被赋给 try 代码块中的变量 result,然后接着执行 else 代码块。然后,总是执行 finally 模块。
import os  #导入os模块
os.getcwd()  #得到当前工作目录
os.listdir() #返回指定目录下的所有文件和目录名
  1. sys模块
    import sys 可以获取系统的参数
import sys

input_file = sys.argv[1]
print("Output #143")
# filereader = open(input_file, 'r')
# for row in filereader:
#     print(row.strip())
# filereader.close()

with open(input_file, 'r', newline='') as filereader:
	for row in filereader:
		print("{}".format(row.strip()))

例如在cmd命令行中输入如下
python a.py b.txt

glob模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值