-
倒序访问list 我们可以用 -1 这个索引来表示最后一个元素,类似的,倒数第二用 -2 表示,倒数第三用 -3 表示查看全部
-
按照索引访问list 索引从 0 开始查看全部
-
创建list Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。 classmates = ['Michael', 'Bob', 'Tracy'] 由于Python是动态语言,所以list中包含的元素并不要求都必须是同一种数据类型,我们完全可以在list中包含各种数据: L = ['Michael', 100, True] 一个元素也没有的list,就是空list: empty_list = []查看全部
-
布尔类型 运算符:and/or/not 在Python中,布尔类型还可以与其他数据类型做 and、or和not运算,请看下面的代码: a = True print a and 'a=T' or 'a=F' 计算结果不是布尔类型,而是字符串 'a=T' 因为Python把0、空字符串''和None看成 False,其他数值和非空字符串都看成 True。同时应用短路计算可得到上述结果。查看全部
-
整数和浮点数 Python的整数运算结果仍然是整数,浮点数运算结果仍然是浮点数,整数和浮点数混合运算的结果就变成浮点数了查看全部
-
Unicode字符串 以Unicode表示的字符串用u'...'表示 Unicode字符串除了多了一个 u 之外,与普通字符串没啥区别,转义字符和多行表示法仍然有效 如果中文字符串在Python环境下遇到 UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释 # -*- coding: utf-8 -*- 目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++ 另存为... 并选择UTF-8格式保存。查看全部
-
raw字符串与多行字符串 如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀 r ,表示这是一个 raw 字符串,里面的字符就不需要转义了。 但是r'...'表示法不能表示多行字符串,也不能表示包含'和 "的字符串 如果要表示多行字符串,可以用'''...'''表示 还可以在多行字符串前面添加 r ,把这个多行字符串也变成一个raw字符串查看全部
-
Python字符串用\进行转义 'Bob said \"I\'m OK\".' 常用的转义字符还有: \n 表示换行 \t 表示一个制表符 \\ 表示 \ 字符本身查看全部
-
同一个变量可以反复赋值,而且可以是不同类型的变量。这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。 当我们写:a = 'ABC'时,Python解释器干了两件事情: 1. 在内存中创建了一个'ABC'的字符串; 2. 在内存中创建了一个名为a的变量,并把它指向'ABC'。 也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据查看全部
-
注释 Python的注释以 # 开头,后面的文字直到行尾都算注释查看全部
-
print语句 print语句可以向屏幕上输出指定的文字。 print语句也可以跟上多个字符串,用逗号“,”隔开,就可以连成一串输出。print会依次打印每个字符串,遇到逗号“,”会输出一个空格。 print也可以打印整数,如print 300查看全部
-
数据类型 一、整数 Python可以处理任意大小的整数,如-8080、0xff00 二、浮点数 如-9.01、1.23e9 整数运算永远是精确的,而浮点数运算则可能会有四舍五入的误差。 三、字符串 字符串是以''或""括起来的任意文本 四、布尔值 布尔值和布尔代数的表示完全一致,布尔值可以用and、or和not运算。 五、空值 空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。查看全部
-
等差数列,通项公式,前n项和竟然在这忘记使用了。。。。。。 等差数列编辑[děng chā shù liè] 等差数列是常见数列的一种,如果一个数列从第二项起,每一项与它的前一项的差等于同一个常数,这个数列就叫做等差数列,而这个常数叫做等差数列的公差,公差常用字母d表示。 例如:1,3,5,7,9……1+2(n-1)。 通项公式为:an=a1+(n-1)*d。首项a1=1,公差d=2。 前n项和公式为:Sn=a1*n+【n*(n-1)*d】/2或Sn=【n*(a1+an)】/2。 注意:以上n均属于正整数。查看全部
-
开发真正的管道函数 过滤器在函数中属于高级应用,因为它可以立即处理管道结果的每一个元素。但是过滤器必须每次重复执行预定义命令的结果。对于MarkEXE 函数,每次执行的过程中要记录和更新控制台的背景颜色,也要花费资源和时间。 事实上,过滤器只是特殊的函数。如果一个函数内部使用了管道,你就可以定义三个基础的任务区了:第一步,完成函数的初始化,完成函数执行的预备步骤;第二步处理递归调用所得的结果;最后进行收尾工作。 这三个任务区分别可以使用begin,process,end 语句块。 接下来把MarkEXE安装上面的模式进行改装: 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 27 28 29 30 Function MarkEXE { begin { # 记录控制台的背景色 $oldcolor = $host.ui.rawui.ForegroundColor } process { # 当前管道的元素 $_ # 如果后缀名为 ".exe", # 改变背景色为红色: If ($_.name.toLower().endsWith(".exe")) { $host.ui.Rawui.ForegroundColor = "red" } Else { # 否则, 使用正常的背景色: $host.ui.Rawui.ForegroundColor = $oldcolor } # 输出当前的背景色 $_ } end { # 最后,恢复控制台的背景色: $host.ui.Rawui.ForegroundColor = $oldcolor } }查看全部
-
过滤器:高效率 流模式 管道的低效率顺序模式在处理大容量数据时很容易出现问题,其结果是巨大的内存占用和进程等待。如果你的函数支持高效率的流模式,在处理管道结果时仅占用很小的内存。 事实上,针对之前MarkEXE函数,你只需要替换”function” 关键字 为 “filter”,它就会开始流模式处理,这样你再也不用过分的担心忍受程序的无休止的响应和崩溃的危险。你也可以递归处理全盘目录,甚至处理极其庞大的数据。例如: 1 Dir c: -recurse | MarkEXE 当MarkEXE每次被调用时,它只会对当前目录下的每个单独的元素进行处理。对于过滤器filters来说,$input 一直都是一个独立的元素。这也就是为什么在过滤器中$input一点用也没有的道理。此时,最好使用$_ 变量,因为它代表了当前处理的数据。这样还可以简化MarkExe,因为过滤器自身已经扮演了循环的角色了,你没有必要再写专门的循环处理了。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Filter MarkEXE { # 记录当前控制台的背景色 $oldcolor = $host.ui.rawui.ForegroundColor # 当前的管道元素保存在 $_ 变量中 # 如果后缀名为 ".exe", # 改变背景色为红色: If ($_.name.toLower().endsWith(".exe")) { $host.ui.Rawui.ForegroundColor = "red" } Else { # 否则使用之前的背景色 $host.ui.Rawui.ForegroundColor = $oldcolor } # 输出当前元素 $_ # 最后恢复控制台颜色: $host.ui.Rawui.ForegroundColor = $oldcolor }查看全部
举报
0/150
提交
取消