周报

python

Python 迭代器

迭代器是一种对象,该对象包含值的可计数数字。

迭代器是可迭代的对象,这意味着您可以遍历所有值。

从技术上讲,在 Python 中,迭代器是实现迭代器协议的对象,它包含方法 iter() 和 next()。

迭代器 VS 可迭代对象(Iterable)

列表、元组、字典和集合都是可迭代的对象。它们是可迭代的容器,您可以从中获取迭代器(Iterator)。

所有这些对象都有用于获取迭代器的 iter() 方法:

mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)

print(next(myit))
print(next(myit))
print(next(myit))

在这里插入图片描述

遍历迭代器

我们也可以使用 for 循环遍历可迭代对象
提示:for 循环实际上创建了一个迭代器对象,并为每个循环执行 next() 方法。

创建迭代器

要把对象/类创建为迭代器,必须为对象实现 iter() 和 next() 方法。

正如您在 Python 类/对象 一章中学到的,所有类都有名为 init() 的函数,它允许您在创建对象时进行一些初始化。

iter() 方法的作用相似,您可以执行操作(初始化等),但必须始终返回迭代器对象本身。

next() 方法也允许您执行操作,并且必须返回序列中的下一个项目。

StopIteration

如果你有足够的 next() 语句,或者在 for 循环中使用,则上面的例子将永远进行下去。

为了防止迭代永远进行,我们可以使用 StopIteration 语句。

next() 方法中,如果迭代完成指定的次数,我们可以添加一个终止条件来引发错误

Python 作用域

局部作用域

在函数内部创建的变量属于该函数的局部作用域,并且只能在该函数内部使用。

def myfunc():
  x = 100
  print(x)

myfunc()
全局作用域

在 Python 代码主体中创建的变量是全局变量,属于全局作用域。

全局变量在任何范围(全局和局部)中可用。

命名变量

如果在函数内部和外部操作同名变量,Python 会将它们视为两个单独的变量,一个在全局范围内可用(在函数外部),而一个在局部范围内可用(在函数内部)

Global 关键字

如果您需要创建一个全局变量,但被卡在本地作用域内,则可以使用 global 关键字。

global 关键字使变量成为全局变量。

Python 模块

创建模块

如需创建模块,只需将所需代码保存在文件扩展名为 .py 的文件中

使用模块

现在,我们就可以用 import 语句来使用我们刚刚创建的模块

导入名为 mymodule 的模块,并调用 greeting 函数:

import mymodule

mymodule.greeting("Bill")

注释:如果使用模块中的函数时,请使用以下语法:

module_name.function_name

模块中的变量

模块可以包含已经描述的函数,但也可以包含各种类型的变量(数组、字典、对象等)

为模块命名

您可以随意对模块文件命名,但是文件扩展名必须是 .py

重命名模块

您可以在导入模块时使用 as 关键字创建别名

import mymodule as mx

a = mx.person1["age"]
print(a)
使用 dir() 函数

有一个内置函数可以列出模块中的所有函数名(或变量名)

import platform

x = dir(platform)
print(x)

注释:dir() 函数可用于所有模块,也可用于您自己创建的模块。

从模块导入

您可以使用 from 关键字选择仅从模块导入部件。

例如名为 mymodule 的模块拥有一个函数和一个字典:

def greeting(name):
  print("Hello, " + name)

person1 = {
  "name": "Bill",
  "age": 63,
  "country": "USA"
}

仅从模块导入 person1 字典:

from mymodule import person1

print (person1["age"])

在这里插入图片描述
提示:在使用 from 关键字导入时,请勿在引用模块中的元素时使用模块名称。示例:person1[“age”],而不是 mymodule.person1[“age”]。

Python 日期

Python 中的日期不是其自身的数据类型,但是我们可以导入名为 datetime 的模块,把日期视作日期对象进行处理。

导入 datetime 模块并显示当前日期:

import datetime

x = datetime.datetime.now()
print(x)
日期输出

如果我们执行上面的代码,结果将是:

2019-08-14 12:52:55.817273

日期包含年、月、日、小时、分钟、秒和微秒。

创建日期对象

如需创建日期,我们可以使用 datetime 模块的 datetime() 类(构造函数)。

datetime() 类需要三个参数来创建日期:年、月、日。

创建日期对象:

import datetime

x = datetime.datetime(2020, 5, 17)

print(x)

在这里插入图片描述
datetime() 类还接受时间和时区(小时、分钟、秒、微秒、tzone)的参数,不过它们是可选的,默认值为 0,(时区默认为 None)。

strftime() 方法

datetime 对象拥有把日期对象格式化为可读字符串的方法。

该方法称为 strftime(),并使用一个 format 参数来指定返回字符串的格式

显示月份的名称:

import datetime

x = datetime.datetime(2019, 10, 1)

print(x.strftime("%B"))

周报_第1张图片

JavaScript

JavaScript 注释

JavaScript 注释用于解释 JavaScript 代码,增强其可读性。

JavaScript 注释也可以用于在测试替代代码时阻止执行。

单行注释

单行注释以 // 开头。

任何位于 // 与行末之间的文本都会被 JavaScript 忽略(不会执行)。

多行注释

多行注释以 /* 开头,以 */ 结尾。

任何位于 /* 和 */ 之间的文本都会被 JavaScript 忽略。

JavaScript 变量

JavaScript 变量是存储数据值的容器。

JavaScript 标识符

所有 JavaScript 变量必须以唯一的名称的标识。

这些唯一的名称称为标识符。

标识符可以是短名称(比如 x 和 y),或者更具描述性的名称(age、sum、totalVolume)。

构造变量名称(唯一标识符)的通用规则是:

名称可包含字母、数字、下划线和美元符号
名称必须以字母开头
名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)
名称对大小写敏感(y 和 Y 是不同的变量)
保留字(比如 JavaScript 的关键词)无法用作变量名称

提示:JavaScript 标识符对大小写敏感

赋值运算符

在 JavaScript 中,等号(=)是赋值运算符,而不是“等于”运算符。

声明(创建) JavaScript 变量

在 JavaScript 中创建变量被称为“声明”变量。

您可以通过 var 关键词来声明 JavaScript 变量:

var carName;

声明之后,变量是没有值的。(技术上,它的值是 undefined。)

Value = undefined

在计算机程序中,被声明的变量经常是不带值的。值可以是需被计算的内容,或是之后被提供的数据,比如数据输入。

不带有值的变量,它的值将是 undefined。

变量 carName 在这条语句执行后的值是 undefined

重复声明 JavaScript 变量

如果再次声明某个 JavaScript 变量,将不会丢它的值。

<script>
var carName = "porsche";
var carName;
document.getElementById("demo").innerHTML = carName;
</script>

在这里插入图片描述

你可能感兴趣的:(周报)