提交 37cdaaf2 编写于 作者: W wizardforcel

2020-06-12 21:18:31

上级 5bf49622
......@@ -45,7 +45,7 @@ Python 可用于快速原型制作或可用于生产环境的软件开发。 以
如今,大多数计算机和操作系统均已安装了 python。 要检查机器中是否已经存在 python,请执行以下命令。
```java
```py
$ python --version
#prints
......@@ -64,14 +64,14 @@ Python3.8.0
让我们在任何文本编辑器中编写第一个 Python 文件`helloworld.py`
```java
```py
print("Hello, World!")
```
保存文件并在命令提示符或控制台中执行它。
```java
```py
$ python helloworld.py
#prints
......@@ -86,7 +86,7 @@ Python 代码可以直接在命令行中运行,通常对于测试少量代码
要获取 python 控制台,请在 OS 控制台中键入命令`'python'`
```java
```py
$ python
Python3.8.0 (tags/v3.8.0:fa919fd, Oct 14 2019, 19:21:23) [MSC v.1916 32 bit (Intel)] on win32
......
......@@ -4,7 +4,7 @@
了解**在 Sublime 编辑器**中安装 python 包的功能,例如自动完成功能,以及在 Sublime 编辑器本身中运行构建。
```java
```py
Table of Contents
Install Sublime Package Control
......
......@@ -4,7 +4,7 @@
在 Python(或任何其他编程语言)中,注释用于解释源代码。 注释描述了代码,这有助于将来维护应用。
```java
```py
# prints 4
print(2 + 2)
......@@ -26,7 +26,7 @@ print(2 + 2)
一个简单的单行注释将以哈希(`#`)字符开头。 Python 运行时会忽略在`#`字符之后编写的任何文本,并将其视为注释。
```java
```py
# This is a simple comment
print(2 + 2)
......@@ -40,7 +40,7 @@ Python 没有什么特别的东西可以写多行注释。 要编写它,我们
我推荐这种形式的注释。
```java
```py
# This statement
# prints the sum of
# two numbers which are 2 and 2
......@@ -50,7 +50,7 @@ print(2 + 2)
我们可以利用未分配给变量的**多行字符串字面值**(使用*三引号*)。 Python 会忽略未分配给任何变量的字符串字面值,因此不会影响程序执行。
```java
```py
"""
This statement
prints the sum of
......
......@@ -10,7 +10,7 @@
Python 语言没有**没有关键字来声明变量**。 当我们首先为变量赋值时,会立即在适当位置创建一个变量。
```java
```py
i = 20
blogName = "howtodoinjava"
......@@ -21,7 +21,7 @@ print(blogName) # prints howtodoinjava
可以使用单引号和双引号来创建字符串类型的变量。
```java
```py
author = 'Lokesh'
blogName = "howtodoinjava"
......@@ -34,7 +34,7 @@ print(blogName) # prints howtodoinjava
Python 还允许使用链式赋值,这使得可以将相同的值同时赋值给多个变量。
```java
```py
i = j = k = 20
print(i) # prints 20
......@@ -47,7 +47,7 @@ print(k) # prints 20
Python 允许您在一行中将值赋值给多个变量。
```java
```py
x, y, z = "A", "B", 100
print(x) # prints A
......@@ -60,7 +60,7 @@ print(z) # prints 100
由于变量不需要数据类型信息,因此我们可以毫无问题地重新赋值任何类型的新值。 在 Python 中,可以为变量赋值一种类型的值,然后在以后重新赋值其他类型的值。
```java
```py
index = 10
index = 20
index = "NA"
......@@ -88,7 +88,7 @@ print(index) # prints NA
在函数外部创建的变量是**全局变量**。 全局变量可以被函数内部和外部的每个人使用。
```java
```py
x = 10 # global variable
def myfunc():
......@@ -105,7 +105,7 @@ print("Sum of x and y = " + str(x + y)) # NameError: name 'y' is not defined
如果在函数内部创建具有相同名称的变量,则该变量将是局部变量,并且只能在函数内部使用。 具有相同名称的全局变量将保留原样,并具有原始值。
```java
```py
x = 10 # global variable
def myfunc():
......@@ -122,7 +122,7 @@ print("x is " + str(x)) # prints x is 10
要在函数内部创建全局变量,我们可以使用`global`关键字。
```java
```py
x = 10 # global variable
def myfunc():
......
......@@ -26,7 +26,7 @@ Python 默认具有以下内置数据类型。
字符串可以定义为用单引号,双引号或三引号引起来的字符序列。 三引号(`"""`)可用于编写多行字符串。
```java
```py
x = 'A'
y = "B"
z = """
......@@ -55,7 +55,7 @@ sumOfItems = str(100) # type conversion from int to string
* `float`保留浮点精度数字,它们的精度最高为 15 个小数位。
* `complex` – 复数包含实部和虚部。
```java
```py
x = 2 # int
x = int(2) # int
......@@ -79,7 +79,7 @@ x = complex(100+3j) # complex
**元组**`list`类似,但`tuple`是只读数据结构,我们无法修改元组项的大小和值。 另外,项目用括号`(, )`括起来。
```java
```py
randomList = [1, "one", 2, "two"]
print (randomList); # prints [1, 'one', 2, 'two']
print (randomList + randomList); # prints [1, 'one', 2, 'two', 1, 'one', 2, 'two']
......@@ -103,7 +103,7 @@ randomTuple[0] = 0 # TypeError: 'tuple' object does not support item assignment
字典中的条目用逗号分隔并括在花括号`{, }`中。
```java
```py
charsMap = {1:'a', 2:'b', 3:'c', 4:'d'};
print (charsMap); # prints {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
......@@ -123,7 +123,7 @@ print (charsMap.values()); # prints dict_values(['a', 'b', 'c', 'd'])
**冻结集**是正常集的不变形式。 这意味着我们无法删除任何项目或将其添加到冻结集中。
```java
```py
digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
print(digits) # prints {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
......@@ -148,7 +148,7 @@ frozenSetOfDigits.remove(0) # AttributeError: 'frozenset' object has no attribut
布尔值是两个常量对象`False``True`。 它们用于表示真值。 在数字上下文中,它们的行为分别类似于整数 0 和 1。
```java
```py
x = True
y = False
......@@ -170,7 +170,7 @@ print(bool(0)) #False
始终通过调用构造器`bytearray()`来创建`bytearray`对象。 这些是**可变的**对象。
```java
```py
x = b'char_data'
x = b"char_data"
......@@ -188,7 +188,7 @@ print(z) # <memory at 0x014CE328>
`type()`函数可用于获取任何对象的数据类型。
```java
```py
x = 5
print(type(x)) # <class 'int'>
......
......@@ -10,7 +10,7 @@ Python 中有 35 个关键字 - 下面列出了它们的用法。
A **logical AND** operator. Return `True` if both statements are `True`.
```java
```py
x = (5 > 3 and 5 < 10)
print(x) # True
......@@ -21,7 +21,7 @@ A **logical AND** operator. Return `True` if both statements are `True`.
逻辑或运算符。 如果两个语句中的任何一个为`True`,则返回`True`。 如果两个语句都为假,则返回`False`
```java
```py
x = (5 > 3 or 5 > 10)
print(x) # True
......@@ -32,7 +32,7 @@ A **logical AND** operator. Return `True` if both statements are `True`.
它用于创建别名。
```java
```py
import calendar as c
print(c.month_name[1]) #January
......@@ -43,7 +43,7 @@ A **logical AND** operator. Return `True` if both statements are `True`.
它可以用于调试代码。 它会测试条件并返回`True`,否则产生`AssertionError`
```java
```py
x = "hello"
assert x == "goodbye", "x should be 'hello'" # AssertionError
......@@ -55,7 +55,7 @@ A **logical AND** operator. Return `True` if both statements are `True`.
它用来声明一个函数为协程,就像`@asyncio.coroutine`装饰器所做的一样。
```java
```py
async def ping_server(ip):
```
......@@ -64,7 +64,7 @@ async def ping_server(ip):
它用于调用`async`协程。
```java
```py
async def ping_local():
return await ping_server('192.168.1.1')
......@@ -75,7 +75,7 @@ async def ping_server(ip):
它用于创建一个类。
```java
```py
class User:
name = "John"
age = 36
......@@ -87,7 +87,7 @@ async def ping_server(ip):
它用于创建或定义函数。
```java
```py
def my_function():
print("Hello world !!")
......@@ -100,7 +100,7 @@ async def ping_server(ip):
它用于删除对象。 在 Python 中,所有事物都是对象,因此`del`关键字也可以用于删除变量,[列表](https://howtodoinjava.com/python/python-lists/)或列表的一部分,等等。
```java
```py
x = "hello"
del x
......@@ -112,7 +112,7 @@ async def ping_server(ip):
它用于创建条件语句,该条件语句仅在条件为`True`时才允许我们执行代码块。
```java
```py
x = 5
if x > 3:
......@@ -124,7 +124,7 @@ async def ping_server(ip):
`elif`
它用于条件语句中,是`else if`的缩写。
```java
```py
i = 5
if i > 0:
......@@ -141,7 +141,7 @@ async def ping_server(ip):
它决定如果`if..else`语句中的条件为`False`时该怎么办。
```java
```py
i = 5
if i > 0:
......@@ -153,7 +153,7 @@ async def ping_server(ip):
也可以在`try...except`块中使用。
```java
```py
x = 5
try:
......@@ -175,7 +175,7 @@ async def ping_server(ip):
如果`try`块引发错误,它将定义要运行的代码块。
```java
```py
try:
x > 3
except:
......@@ -188,7 +188,7 @@ async def ping_server(ip):
它定义了一个代码块,无论`try`块是否引发错误,该代码块都将执行。
```java
```py
try:
x > 3
except:
......@@ -203,7 +203,7 @@ async def ping_server(ip):
它用于手动引发异常。
```java
```py
x = "hello"
if not type(x) is int:
......@@ -225,7 +225,7 @@ async def ping_server(ip):
它用于创建`for`循环。 `for`循环可用于遍历序列(如列表,元组等)。
```java
```py
for x in range(1, 9):
print(x)
......@@ -236,7 +236,7 @@ async def ping_server(ip):
它用于创建`while`循环。 循环继续进行,直到条件语句为假。
```java
```py
x = 0
while x < 9:
......@@ -250,7 +250,7 @@ async def ping_server(ip):
它用于中断`for`循环或`while`循环。
```java
```py
i = 1
while i < 9:
......@@ -266,7 +266,7 @@ async def ping_server(ip):
它用于在`for`循环(或`while`循环)中结束当前迭代,并继续进行下一个迭代。
```java
```py
for i in range(9):
if i == 3:
continue
......@@ -279,7 +279,7 @@ async def ping_server(ip):
它用于导入模块。
```java
```py
import datetime
```
......@@ -288,7 +288,7 @@ import datetime
它仅用于从模块中导入指定的节。
```java
```py
from datetime import time
```
......@@ -297,7 +297,7 @@ from datetime import time
它用于从非全局范围创建全局变量,例如在函数内部。
```java
```py
def myfunction():
global x
x = "hello"
......@@ -311,7 +311,7 @@ from datetime import time
2\. 它也用于在`for`循环中遍历序列。
```java
```py
fruits = ["apple", "banana", "cherry"]
if "banana" in fruits:
......@@ -327,7 +327,7 @@ from datetime import time
它用于测试两个变量是否引用同一对象。
```java
```py
a = ["apple", "banana", "cherry"]
b = ["apple", "banana", "cherry"]
c = a
......@@ -342,7 +342,7 @@ from datetime import time
它用于创建小的匿名函数。 它们可以接受任意数量的参数,但只能有一个表达式。
```java
```py
x = lambda a, b, c : a + b + c
print(x(5, 6, 2))
......@@ -356,7 +356,7 @@ from datetime import time
`None`是它自己的数据类型(`NoneType`),并且只有`None`可以是`None`
```java
```py
x = None
if x:
......@@ -371,7 +371,7 @@ from datetime import time
它用于声明变量不是局部变量。 它用于在嵌套函数内部使用变量,其中变量不应属于内部函数。
```java
```py
def myfunc1():
x = "John"
def myfunc2():
......@@ -389,7 +389,7 @@ from datetime import time
它是一个逻辑运算符,并反转`True``False`的值。
```java
```py
x = False
print(not x) # True
......@@ -401,7 +401,7 @@ from datetime import time
它用作将来代码的占位符。 当执行`pass`语句时,什么也不会发生,但是当不允许使用空代码时,可以避免出现错误。循环,函数定义,类定义或`if`语句中不允许使用空代码。
```java
```py
for x in [0, 1, 2]:
pass
```
......@@ -411,7 +411,7 @@ for x in [0, 1, 2]:
它用于退出一个函数并返回一个值。
```java
```py
def myfunction():
return 3+3
```
......
......@@ -8,7 +8,7 @@
* 用单引号或双引号引起来
* 无限长度
```java
```py
str = 'hello world'
str = "hello world"
......@@ -17,7 +17,7 @@ str = "hello world"
使用三个单引号或三个双引号创建**多行字符串**
```java
```py
str = '''Say hello
to python
programming'''
......@@ -36,7 +36,7 @@ str = """Say hello
`str[m:n]`从位置 2(包括)到 5(不包括)返回字符串。
```java
```py
str = 'hello world'
print(str[2:5]) # llo
......@@ -45,7 +45,7 @@ print(str[2:5]) # llo
**负切片**从末尾返回子字符串。
```java
```py
str = 'hello world'
print(str[-5:-2]) # wor
......@@ -58,7 +58,7 @@ print(str[-5:-2]) # wor
在 python 中,字符串表现为数组。 方括号可用于访问字符串的元素。
```java
```py
str = 'hello world'
print(str[0]) # h
......@@ -73,7 +73,7 @@ print(str[20]) # IndexError: string index out of range
`len()`函数返回字符串的长度:
```java
```py
str = 'hello world'
print(len(str)) # 11
......@@ -86,7 +86,7 @@ print(len(str)) # 11
我们可以在占位符中传递参数位置(从零开始)。
```java
```py
age = 36
name = 'Lokesh'
......@@ -106,7 +106,7 @@ print(txt.format(name, age)) # My age is 36 and the name is Lokesh
它返回一个字符串,其中给定字符串的第一个字符被转换为大写。 当第一个字符为非字母时,它将返回相同的字符串。
```java
```py
name = 'lokesh gupta'
print( name.capitalize() ) # Lokesh gupta
......@@ -121,7 +121,7 @@ print( txt.capitalize() ) # 38 yrs old lokesh gupta
它返回一个字符串,其中所有字符均为给定字符串的小写字母。
```java
```py
txt = 'My Name is Lokesh Gupta'
print( txt.casefold() ) # my name is lokesh gupta
......@@ -134,7 +134,7 @@ print( txt.casefold() ) # my name is lokesh gupta
在给定的示例中,输出总共需要 20 个字符,而“ hello world”位于其中。
```java
```py
txt = "hello world"
x = txt.center(20)
......@@ -151,7 +151,7 @@ print(x) # ' hello world '
`count(value, start, end)` - 要在字符串中搜索的`value`,其中搜索起始于`start`位置,直到`end`位置。
```java
```py
txt = "hello world"
print( txt.count("o") ) # 2
......@@ -164,7 +164,7 @@ print( txt.count("o", 4, 7) ) # 1
它使用指定的编码对字符串进行编码。 如果未指定编码,将使用`UTF-8`
```java
```py
txt = "My name is åmber"
x = txt.encode()
......@@ -177,7 +177,7 @@ print(x) # b'My name is \xc3\xa5mber'
如果字符串以指定值结尾,则返回`True`,否则返回`False`
```java
```py
txt = "hello world"
print( txt.endswith("world") ) # True
......@@ -190,7 +190,7 @@ print( txt.endswith("planet") ) # False
它将制表符大小设置为指定的空格数。
```java
```py
txt = "hello\tworld"
print( txt.expandtabs(2) ) # 'hello world'
......@@ -207,7 +207,7 @@ print( txt.expandtabs(16) ) # 'hello world'
`find()``index()`方法相同,唯一的区别是,如果找不到该值,则`index()`方法会引发异常。
```java
```py
txt = "My name is Lokesh Gupta"
x = txt.find("e")
......@@ -220,7 +220,7 @@ print(x) # 6
它格式化指定的字符串,并在字符串的占位符内插入参数值。
```java
```py
age = 36
name = 'Lokesh'
......@@ -234,7 +234,7 @@ print( txt.format(name, age) ) # My name is Lokesh and my age is 36
它用于返回字典键的值,以格式化带有命名占位符的字符串。
```java
```py
params = {'name':'Lokesh Gupta', 'age':'38'}
txt = "My name is {name} and age is {age}"
......@@ -250,7 +250,7 @@ print(x) # My name is Lokesh Gupta and age is 38
* 它在给定的字符串中查找指定值的第一次出现。
* 如果找不到要搜索的值,则会引发异常。
```java
```py
txt = "My name is Lokesh Gupta"
x = txt.index("e")
......@@ -265,7 +265,7 @@ x = txt.index("z") # ValueError: substring not found
它检查字母数字字符串。 如果所有字符均为字母数字,表示字母`(a-zA-Z)`和数字`(0-9)`,则返回`True`
```java
```py
print("LokeshGupta".isalnum()) # True
print("Lokesh Gupta".isalnum()) # False - Contains space
......@@ -276,7 +276,7 @@ print("Lokesh Gupta".isalnum()) # False - Contains space
如果所有字符都是字母,则返回`True`,表示字母`(a-zA-Z)`
```java
```py
print("LokeshGupta".isalpha()) # True
print("Lokesh Gupta".isalpha()) # False - Contains space
......@@ -289,7 +289,7 @@ print("LokeshGupta38".isalpha()) # False - Contains numbers
如果所有字符均为十进制(0-9),则返回代码。 否则返回`False`
```java
```py
print("LokeshGupta".isdecimal()) # False
print("12345".isdecimal()) # True
......@@ -304,7 +304,7 @@ print("1234 5678".isdecimal()) # False - Contains space
如果所有字符都是数字,则返回`True`,否则返回`False`。 指数也被认为是数字。
```java
```py
print("LokeshGupta".isdigit()) # False
print("12345".isdigit()) # True
......@@ -321,7 +321,7 @@ print("1234\u00B2".isdigit()) # True - unicode for square 2
有效的标识符仅包含字母数字字母`(a-z)``(0-9)`或下划线`( _ )`。 它不能以数字开头或包含任何空格。
```java
```py
print( "Lokesh_Gupta_38".isidentifier() ) # True
print( "38_Lokesh_Gupta".isidentifier() ) # False - Start with number
......@@ -336,7 +336,7 @@ print( "Lokesh Gupta 38".isidentifier() ) # False - Contain spaces
如果所有字符均小写,则返回`True`,否则返回`False`。 不检查数字,符号和空格,仅检查字母字符。
```java
```py
print( "LokeshGupta".islower() ) # False
print( "lokeshgupta".islower() ) # True
......@@ -351,7 +351,7 @@ print( "lokesh_gupta_38".islower() ) # True
如果所有字符都是数字(`0-9`),则此方法返回`True`,否则返回`False`。 指数也被认为是数值。
```java
```py
print("LokeshGupta".isnumeric()) # False
print("12345".isnumeric()) # True
......@@ -373,7 +373,7 @@ print("1234\u00B2".isnumeric()) # True - unicode for square 2
* 分页符
* 空字符
```java
```py
print("LokeshGupta".isprintable()) # True
print("Lokesh Gupta".isprintable()) # True
......@@ -390,7 +390,7 @@ print("Lokesh\tGupta".isprintable()) # False
如果文本中的所有单词均以大写字母开头,而其余单词均为小写字母(即标题大小写),则返回`True`。 否则`False`
```java
```py
print("Lokesh Gupta".istitle()) # True
print("Lokesh gupta".istitle()) # False
......@@ -401,7 +401,7 @@ print("Lokesh gupta".istitle()) # False
如果所有字符均大写,则返回`True`,否则返回`False`。 不检查数字,符号和空格,仅检查字母字符。
```java
```py
print("LOKESHGUPTA".isupper()) # True
print("LOKESH GUPTA".isupper()) # True
......@@ -414,7 +414,7 @@ print("Lokesh Gupta".isupper()) # False
它以可迭代方式获取所有项目,并使用强制性指定的分隔符将它们连接为一个字符串。
```java
```py
myTuple = ("Lokesh", "Gupta", "38")
x = "#".join(myTuple)
......@@ -427,7 +427,7 @@ print(x) # Lokesh#Gupta#38
此方法将使用指定的字符(默认为空格)作为填充字符使字符串左对齐。
```java
```py
txt = "lokesh"
x = txt.ljust(20, "-")
......@@ -440,7 +440,7 @@ print(x) # lokesh--------------
它返回一个字符串,其中所有字符均为小写。 符号和数字将被忽略。
```java
```py
txt = "Lokesh Gupta"
x = txt.lower()
......@@ -453,7 +453,7 @@ print(x) # lokesh gupta
它删除所有前导字符(默认为空格)。
```java
```py
txt = "#Lokesh Gupta"
x = txt.lstrip("#_,.")
......@@ -466,7 +466,7 @@ print(x) # Lokesh Gupta
它创建一个字符到其转换/替换的一对一映射。 当在`translate()`方法中使用时,此转换映射用于将字符替换为其映射的字符。
```java
```py
dict = {"a": "123", "b": "456", "c": "789"}
string = "abc"
......@@ -483,7 +483,7 @@ print(string.maketrans(dict)) # {97: '123', 98: '456', 99: '789'}
* 第二个元素包含指定的字符串。
* 第三个元素包含字符串后面的部分。
```java
```py
txt = "my name is lokesh gupta"
x = txt.partition("lokesh")
......@@ -503,7 +503,7 @@ print(x[2]) # gupta
* `string.replace(oldvalue, newvalue)`
* `string.replace(oldvalue, newvalue, count)``count`指定要替换的匹配次数。 默认为所有事件。
```java
```py
txt = "A A A A A"
x = txt.replace("A", "B")
......@@ -520,7 +520,7 @@ print(x) # B B A A A
它查找指定值的最后一次出现。 如果在给定的文本中找不到该值,则返回`-1`
```java
```py
txt = "my name is lokesh gupta"
x = txt.rfind("lokesh")
......@@ -537,7 +537,7 @@ print(x) # -1
它查找指定值的最后一次出现,如果找不到该值,则会引发异常。
```java
```py
txt = "my name is lokesh gupta"
x = txt.rindex("lokesh")
......@@ -552,7 +552,7 @@ x = txt.rindex("amit") # ValueError: substring not found
它将使用指定的字符(默认为空格)作为填充字符来右对齐字符串。
```java
```py
txt = "lokesh"
x = txt.rjust(20,"#")
......@@ -569,7 +569,7 @@ print(x, "is my name") # ##############lokesh is my name
* 第二个元素包含指定的字符串。
* 第三个元素包含字符串后面的部分。
```java
```py
txt = "my name is lokesh gupta"
x = txt.rpartition("lokesh")
......@@ -586,7 +586,7 @@ print(x[2]) # gupta
它将字符串从右开始拆分为列表。
```java
```py
txt = "apple, banana, cherry"
x = txt.rsplit(", ")
......@@ -599,7 +599,7 @@ print(x) # ['apple', 'banana', 'cherry']
它删除所有结尾字符(字符串末尾的字符),空格是默认的结尾字符。
```java
```py
txt = " lokesh "
x = txt.rstrip()
......@@ -612,7 +612,7 @@ print(x) # ' lokesh'
它将字符串拆分为列表。 您可以指定分隔符。 默认分隔符为空格。
```java
```py
txt = "my name is lokesh"
x = txt.split()
......@@ -625,7 +625,7 @@ print(x) # ['my', 'name', 'is', 'lokesh']
通过在换行符处进行拆分,它将字符串拆分为列表。
```java
```py
txt = "my name\nis lokesh"
x = txt.splitlines()
......@@ -638,7 +638,7 @@ print(x) # ['my name', 'is lokesh']
如果字符串以指定值开头,则返回`True`,否则返回`False`。 字符串比较区分大小写。
```java
```py
txt = "my name is lokesh"
print( txt.startswith("my") ) # True
......@@ -651,7 +651,7 @@ print( txt.startswith("My") ) # False
它将删除所有前导(开头的空格)和结尾(结尾的空格)字符(默认为空格)。
```java
```py
txt = " my name is lokesh "
print( txt.strip() ) # 'my name is lokesh'
......@@ -662,7 +662,7 @@ print( txt.strip() ) # 'my name is lokesh'
它返回一个字符串,其中所有大写字母均为小写字母,反之亦然。
```java
```py
txt = "My Name Is Lokesh Gupta"
print( txt.swapcase() ) # mY nAME iS lOKESH gUPTA
......@@ -673,7 +673,7 @@ print( txt.swapcase() ) # mY nAME iS lOKESH gUPTA
它返回一个字符串,其中每个单词的第一个字符均为大写。 如果单词开头包含数字或符号,则其后的第一个字母将转换为大写字母。
```java
```py
print( "lokesh gupta".title() ) # Lokesh Gupta
print( "38lokesh gupta".title() ) # 38Lokesh Gupta
......@@ -686,7 +686,7 @@ print( "1\. lokesh gupta".title() ) # Lokesh Gupta
它需要转换表根据映射表替换/转换给定字符串中的字符。
```java
```py
translation = {97: None, 98: None, 99: 105}
string = "abcdef"
......@@ -699,7 +699,7 @@ print( string.translate(translation) ) # idef
它返回一个字符串,其中所有字符均大写。 符号和数字将被忽略。
```java
```py
txt = "lokesh gupta"
print( txt.upper() ) # LOKESH GUPTA
......@@ -710,7 +710,7 @@ print( txt.upper() ) # LOKESH GUPTA
它在字符串的开头添加零(0),直到达到指定的长度。
```java
```py
txt = "100"
x = txt.zfill(10)
......
......@@ -10,7 +10,7 @@
* 异构的(列表中的项目不必是同一类型)
* 写为方括号之间的逗号分隔值列表
```java
```py
listOfSubjects = ['physics', 'chemistry', "mathematics"]
listOfIds = [0, 1, 2, 3, 4]
......@@ -30,7 +30,7 @@ miscList = [0, 'one', 2, 'three']
* 如果未提供`m`,则假定其值为零。
* 如果未提供`n`,则选择范围直到列表的最后。
```java
```py
ids = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print( ids[0] ) # 0
......@@ -49,7 +49,7 @@ print( ids[-8:-5] ) # [2, 3, 4]
要更改列表中的特定项目,请使用其索引进行引用并分配一个新值。
```java
```py
charList = ["a", "b", "c"]
charList [2] = "d"
......@@ -62,7 +62,7 @@ print (charList) # ['a', 'b', 'd']
我们可以使用`for`循环遍历列表项。
```java
```py
charList = ["a", "b", "c"]
for x in charList:
......@@ -78,7 +78,7 @@ for x in charList:
使用`'in'`关键字确定列表中是否存在指定的项目。
```java
```py
charList = ["a", "b", "c"]
if "a" in charList:
......@@ -95,7 +95,7 @@ else:
使用`len()`函数查找给定列表的长度。
```java
```py
charList = ["a", "b", "c"]
x = len (charList)
......@@ -109,7 +109,7 @@ print (x) # 3
* 要将项目添加到列表的末尾,请使用`append(item)`方法。
* 要在特定索引位置添加项目,请使用`insert(index, item)`方法。 如果`index`大于索引长度,则将项目添加到列表的末尾。
```java
```py
charList = ["a", "b", "c"]
charList.append("d")
......@@ -135,7 +135,7 @@ print (charList) # ['a', 'b', 'c', 'd', 'e', 'f', 'h']
它会通过其值删除指定的项目。
```java
```py
charList = ["a", "b", "c"]
charList.remove("c")
......@@ -148,7 +148,7 @@ print (charList) # ['a', 'b']
它将通过索引删除指定的项目。 如果未提供`index`,它将从列表中删除最后一项。
```java
```py
charList = ["a", "b", "c", "d"]
charList.pop() # removes 'd' - last item
......@@ -165,7 +165,7 @@ print (charList) # ['a', 'c']
它清空列表。
```java
```py
charList = ["a", "b", "c", "d"]
charList.clear()
......@@ -178,7 +178,7 @@ print (charList) # []
它可以用于**通过索引**从列表中删除某项。 我们也可以使用它来**删除整个列表**
```java
```py
charList = ["a", "b", "c", "d"]
del charList[0]
......@@ -195,7 +195,7 @@ print (charList) # NameError: name 'charList' is not defined
我们可以使用`"+"`运算符或`extend()`函数在 Python 中连接两个给定列表。
```java
```py
charList = ["a", "b", "c"]
numList = [1, 2, 3]
......@@ -215,7 +215,7 @@ print (charList) # ['a', 'b', 'c', 1, 2, 3]
在列表的末尾添加一个元素。
```java
```py
charList = ["a", "b", "c"]
charList.append("d")
......@@ -228,7 +228,7 @@ print (charList) # ["a", "b", "c", "d"]
从列表中删除所有元素。
```java
```py
charList = ["a", "b", "c"]
charList.clear()
......@@ -241,7 +241,7 @@ print (charList) # []
返回列表的副本。
```java
```py
charList = ["a", "b", "c"]
newList = charList.copy()
......@@ -254,7 +254,7 @@ print (newList) # ["a", "b", "c"]
返回具有指定值的元素数。
```java
```py
charList = ["a", "b", "c"]
x = charList.count('a')
......@@ -267,7 +267,7 @@ print (x) # 1
将列表的元素添加到当前列表的末尾。
```java
```py
charList = ["a", "b", "c"]
numList = [1, 2, 3]
......@@ -281,7 +281,7 @@ print (charList) # ['a', 'b', 'c', 1, 2, 3]
返回具有指定值的第一个元素的索引。
```java
```py
charList = ["a", "b", "c"]
x = charList.index('a')
......@@ -294,7 +294,7 @@ print (x) # 0
在指定位置添加元素。
```java
```py
charList = ["a", "b", "c"]
charList.insert(3, 'd')
......@@ -307,7 +307,7 @@ print (charList) # ['a', 'b', 'c', 'd']
删除指定位置或列表末尾的元素。
```java
```py
charList = ["a", "b", "c", "d"]
charList.pop() # removes 'd' - last item
......@@ -324,7 +324,7 @@ print (charList) # ['a', 'c']
删除具有指定值的项目。
```java
```py
charList = ["a", "b", "c", "d"]
charList.remove('d')
......@@ -337,7 +337,7 @@ print (charList) # ['a', 'b', 'c']
反转列表中项目的顺序。
```java
```py
charList = ["a", "b", "c", "d"]
charList.reverse()
......@@ -350,7 +350,7 @@ print (charList) # ['d', 'c', 'b', 'a']
默认情况下,以升序对给定列表进行排序。
```java
```py
charList = ["a", "c", "b", "d"]
charList.sort()
......
......@@ -19,11 +19,11 @@
元组中的元素用圆括号括起来,并用逗号分隔。 元组可以包含任意数量的不同类型的项。
```java
```py
Tuple = (item1, item2, item3)
```
```java
```py
tuple1 = () # empty tuple
tuple2 = (1, "2", 3.0)
......@@ -36,7 +36,7 @@ tuple3 = 1, "2", 3.0
如果元组仅包含一个元素,则不将其视为元组。 它应该以逗号结尾,以指定解释器为元组。
```java
```py
tupleWithOneElement = ("hello", ) # Notice trailing comma
```
......@@ -45,7 +45,7 @@ tupleWithOneElement = ("hello", ) # Notice trailing comma
一个包含另一个元组作为元素的元组,称为嵌套元组。
```java
```py
nestedTuple = ("hello", ("python", "world"))
```
......@@ -60,7 +60,7 @@ nestedTuple = ("hello", ("python", "world"))
* 范围`[m:n]`表示从位置`m`*包括*)到位置`n`*排除*)。
* 使用**双索引**访问嵌套元组的元素。
```java
```py
Tuple = ("a", "b", "c", "d", "e", "f")
print(Tuple[0]) # a
......@@ -84,7 +84,7 @@ print(Tuple[3][0:2]) # ('d', 'e')
使用`for`循环,以遍历元组项。
```java
```py
Tuple = ("a", "b", "c")
for x in Tuple:
......@@ -96,7 +96,7 @@ for x in Tuple:
要检查元组是否包含给定元素,可以使用`'in'`关键字和`'not in'`关键字。
```java
```py
Tuple = ("a", "b", "c", "d", "e", "f")
if "a" in Tuple:
......@@ -111,7 +111,7 @@ if "p" not in Tuple:
使用内置的`sorted()`语言方法对元组中的元素进行排序。
```java
```py
Tuple = ("a", "c", "b", "d", "f", "e")
sortedTuple = sorted(Tuple)
......@@ -124,7 +124,7 @@ print (sortedTuple) # ("a", "b", "c", "d", "e", "f")
要重复一个元组的所有元素,请将其乘以所需因子`N`
```java
```py
Tuple = ("a", "b")
repeatedTuple = Tuple * 3
......@@ -135,7 +135,7 @@ print (repeatedTuple) # ('a', 'b', 'a', 'b', 'a', 'b')
要连接/连接两个或多个元组,我们可以使用`+`运算符。
```java
```py
Tuple1 = ("a", "b", "c")
Tuple2 = ("d", "e", "f")
......@@ -151,7 +151,7 @@ print (joinedTuple) # ("a", "b", "c", "d", "e", "f")
在下面的示例中,所有三个值都分配给变量`Tuple`
```java
```py
Tuple = ("a", "b", "c")
```
......@@ -159,7 +159,7 @@ Tuple = ("a", "b", "c")
在给定的示例中,将元组解包为新的元组,并将值`a, b, c` – 分配给变量`x, y, z`
```java
```py
Tuple = ("a", "b", "c") # Packing
(x, y, z) = Tuple
......@@ -172,7 +172,7 @@ print (z) # c
> 在解包期间,分配左侧的元组中的元素数必须等于右侧的数量。
```java
```py
Tuple = ("a", "b", "c") # Packing
(x, y, z) = Tuple # ValueError: too many values to unpack (expected 2)
......@@ -187,7 +187,7 @@ Python 提供了一种称为`namedtuple()`的**特殊类型的函数**,该函
命名元组类似于字典,但是支持从值和键访问,其中字典仅支持按键访问。
```java
```py
import collections
Record = collections.namedtuple('Record', ['id', 'name', 'date'])
......@@ -208,7 +208,7 @@ print("Record name is:", R1.name) # Record name is: My Record
如果该元组中至少存在一个元素,则返回`True`;如果该元组为空,则返回`False`
```java
```py
print( any( () ) ) # Empty tuple - False
print( any( (1,) ) ) # One element tuple - True
print( any( (1, 2) ) ) # Regular tuple - True
......@@ -219,7 +219,7 @@ print( any( (1, 2) ) ) # Regular tuple - True
返回元组的最小元素(整数)。
```java
```py
Tuple = (4, 1, 2, 6, 9)
print( min( Tuple ) ) # 1
......@@ -230,7 +230,7 @@ print( min( Tuple ) ) # 1
返回元组的最大元素(整数)。
```java
```py
Tuple = (4, 1, 2, 6, 9)
print( max( Tuple ) ) # 9
......@@ -241,7 +241,7 @@ print( max( Tuple ) ) # 9
返回元组的长度。
```java
```py
Tuple = (4, 1, 2, 6, 9)
print( len( Tuple ) ) # 5
......@@ -252,7 +252,7 @@ print( len( Tuple ) ) # 5
返回元组的所有元素(整数)的总和。
```java
```py
Tuple = (4, 1, 2, 6, 9)
print( sum( Tuple ) ) # 22
......
......@@ -13,7 +13,7 @@ Python 示例使用`max()`和`min()`方法在可比较元素的集合(例如
#### 1.1 查找数组中的最大整数
```java
```py
>>> nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
>>> max( nums )
......@@ -24,7 +24,7 @@ Python 示例使用`max()`和`min()`方法在可比较元素的集合(例如
#### 1.2 查找数组中的最大字符串
```java
```py
>>> blogName = ["how","to","do","in","java"]
>>> max( blogName )
......@@ -37,7 +37,7 @@ Python 示例使用`max()`和`min()`方法在可比较元素的集合(例如
有点复杂的结构。
```java
```py
>>> prices = {
'how': 45.23,
'to': 612.78,
......@@ -63,7 +63,7 @@ Python 示例使用`max()`和`min()`方法在可比较元素的集合(例如
#### 2.1 查找数组中的最小整数
```java
```py
>>> nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
>>> min( nums )
......@@ -74,7 +74,7 @@ Python 示例使用`max()`和`min()`方法在可比较元素的集合(例如
#### 2.2 查找数组中的最小字符串
```java
```py
>>> blogName = ["how","to","do","in","java"]
>>> min( blogName )
......@@ -87,7 +87,7 @@ Python 示例使用`max()`和`min()`方法在可比较元素的集合(例如
A little complex structure.
```java
```py
>>> prices = {
'how': 45.23,
'to': 612.78,
......
......@@ -13,7 +13,7 @@ Python `heapq`模块可用于**从集合中找到 N 个最大或最小的项目*
#### 1.1 在简单的可迭代对象中查找项目
```java
```py
>>> import heapq
>>> nums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]
......@@ -28,7 +28,7 @@ print(heapq.nsmallest(3, nums))
#### 1.2 查找复杂的可迭代项
```java
```py
>>> portfolio =
[
{'name': 'IBM', 'shares': 100, 'price': 91.1},
......
......@@ -4,7 +4,7 @@
学习在 [Python](https://www.python.org/) 中使用 **CSV** 文件。 CSV(逗号分隔值)格式是在电子表格和数据库中使用的非常流行的导入和导出格式。 Python 语言包含`csv`模块,该模块具有**可以读写 CSV 格式**的类。
```java
```py
Table of Contents
Reading CSV file with csv.reader()
......@@ -21,14 +21,14 @@ Custom CSV Dialects
假设我们有以下包含数字的`numbers.csv`文件:
```java
```py
6,5,3,9,8,6,7
```
以下 python 脚本从此 CSV 文件读取数据。
```java
```py
#!/usr/bin/python3
import csv
......@@ -47,14 +47,14 @@ with f:
现在,假设 CSV 文件将使用**不同的定界符**。 (严格来说,这不是 CSV 文件,但是这种做法很常见。)例如,我们有以下`items.csv`文件,其中的元素由竖线字符(`|`)分隔:
```java
```py
pen|table|keyboard
```
以下脚本从`items.csv`文件读取数据。
```java
```py
#!/usr/bin/python3
import csv
......@@ -80,7 +80,7 @@ with f:
我们具有以下`values.csv`文件:
```java
```py
min, avg, max
1, 5.5, 10
......@@ -88,7 +88,7 @@ min, avg, max
第一行代表字典的键,第二行代表值。
```java
```py
#!/usr/bin/python3
import csv
......@@ -107,7 +107,7 @@ with f:
这是示例的输出。
```java
```py
$ ./read_csv3.py
{' max': ' 10', 'min': '1', ' avg': ' 5.5'}
......@@ -117,7 +117,7 @@ $ ./read_csv3.py
[`csv.writer()`](https://docs.python.org/3/library/csv.html#csv.writer)方法返回一个写入器对象,该对象负责将用户数据转换为给定文件状对象上的定界字符串。
```java
```py
#!/usr/bin/python3
import csv
......@@ -138,7 +138,7 @@ with f:
该脚本生成以下文件(`numbers2.csv`):
```java
```py
1,2,3,4,5,6
7,8,9,10,11,12
......@@ -148,7 +148,7 @@ with f:
下一个代码示例将 Python 列表写入`numbers3.csv`文件。 该脚本将三行数字写入文件。
```java
```py
#!/usr/bin/python3
import csv
......@@ -166,7 +166,7 @@ with f:
运行上述程序时,以下输出将写入`numbers3.csv`文件:
```java
```py
1,2,3
7,8,9
10,11,12
......@@ -184,7 +184,7 @@ with f:
在下一个示例中,我们将三行写入`items2.csv`文件。 所有非数字字段均用引号引起来。
```java
```py
#!/usr/bin/python3
import csv
......@@ -200,7 +200,7 @@ with f:
该程序将创建以下`items2.csv`文件。 引用项目名称,不引用数字表示的数量。
```java
```py
"coins",3
"pens",2
"bottles",7
......@@ -213,7 +213,7 @@ with f:
下一个代码示例将打印可用的方言及其特征。
```java
```py
#!/usr/bin/python3
import csv
......@@ -239,7 +239,7 @@ for name in names:
`csv.list_dialects()`返回方言名称的列表,`csv.get_dialect()`方法返回与方言名称关联的方言。
```java
```py
$ ./dialects.py
excel
',' 1 None '\r\n' " 0 0 0
......@@ -256,7 +256,7 @@ unix
在本教程的最后一个示例中,我们将创建一个自定义方言。 使用`csv.register_dialect()`方法创建自定义方言。
```java
```py
#!/usr/bin/python3
import csv
......@@ -278,7 +278,7 @@ with f:
程序生成以下文件(`items3.csv`):
```java
```py
pencils#2
plates#1
books#4
......
......@@ -6,7 +6,7 @@
Python `httplib2`模块提供了用于通过 HTTP 访问 Web 资源的方法。 它支持许多功能,例如 HTTP 和 HTTPS,认证,缓存,重定向和压缩。
```java
```py
$ service nginx status
* nginx is running
......@@ -14,7 +14,7 @@ $ service nginx status
我们在本地主机上运行 nginx Web 服务器。 我们的一些示例将连接到本地运行的 nginx 服务器上的 PHP 脚本。
```java
```py
Table of Contents
Check httplib2 Library Version
......@@ -30,7 +30,7 @@ Add Username/Password to Request
第一个程序打印库的版本,其版权和文档字符串。
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -43,7 +43,7 @@ print(httplib2.__doc__)
`httplib2.__version__`给出`httplib2`库的版本,`httplib2.__copyright__`给出其版权,`httplib2.__doc__`给出其文档字符串。
```java
```py
$ ./version.py
0.8
Copyright 2006, Joe Gregorio
......@@ -67,7 +67,7 @@ Changelog:
在下面的示例中,我们显示了如何从名为 [www.something.com](http://www.something.com) 的网站上获取 HTML 内容。
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -81,7 +81,7 @@ print(content.decode())
使用`httplib2.HTTP()`创建一个 HTTP 客户端。 使用`request()`方法创建一个新的 HTTP 请求; 默认情况下,它是一个 GET 请求。 返回值是响应和内容的元组。
```java
```py
$ ./get_content.py
<html><head><title>Something.</title></head>
<body>Something.</body>
......@@ -95,7 +95,7 @@ $ ./get_content.py
以下程序获取一个小型网页,并剥离其 HTML 标签。
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -111,7 +111,7 @@ print(stripped)
一个简单的正则表达式用于剥离 HTML 标记。 请注意,我们正在剥离数据,我们没有对其进行清理。 (这是两件事。)
```java
```py
$ ./strip_tags.py
Something.
Something.
......@@ -124,7 +124,7 @@ Something.
响应对象包含`status`属性,该属性提供响应的状态代码。
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -141,7 +141,7 @@ print(resp.status)
我们使用`request()`方法执行两个 HTTP 请求,并检查返回的状态。
```java
```py
$ ./get_status.py
200
404
......@@ -154,7 +154,7 @@ $ ./get_status.py
HTTP HEAD 方法检索文档标题。 标头由字段组成,包括日期,服务器,内容类型或上次修改时间。
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -172,7 +172,7 @@ print("Content length: " + resp['content-length'])
该示例打印服务器,`www.something.com`网页的上次修改时间,内容类型和内容长度。
```java
```py
$ ./do_head.py
Server: Apache/2.4.12 (FreeBSD) OpenSSL/1.0.1l-freebsd mod_fastcgi/mod_fastcgi-SNAP-0910052141
Last modified: Mon, 25 Oct 1999 15:36:02 GMT
......@@ -187,7 +187,7 @@ Content length: 72
HTTP GET 方法请求指定资源的表示形式。 对于此示例,我们还将使用`greet.php`脚本:
```java
```py
<?php
echo "Hello " . htmlspecialchars($_GET['name']);
......@@ -200,7 +200,7 @@ echo "Hello " . htmlspecialchars($_GET['name']);
`htmlspecialchars()`函数将特殊字符转换为 HTML 实体; 例如`&``&amp`
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -215,7 +215,7 @@ print(content.decode())
该脚本将带有值的变量发送到服务器上的 PHP 脚本。 该变量直接在 URL 中指定。
```java
```py
$ ./mget.py
Hello Peter
......@@ -223,7 +223,7 @@ Hello Peter
这是示例的输出。
```java
```py
$ tail -1 /var/log/nginx/access.log
127.0.0.1 - - [21/Aug/2016:17:32:31 +0200] "GET /greet.php?name=Peter HTTP/1.1" 200 42 "-"
"Python-httplib2/0.8 (gzip)"
......@@ -236,7 +236,7 @@ $ tail -1 /var/log/nginx/access.log
POST 请求方法请求 Web 服务器接受并存储请求消息正文中包含的数据。 上载文件或提交完整的 Web 表单时经常使用它。
```java
```py
<?php
echo "Hello " . htmlspecialchars($_POST['name']);
......@@ -247,7 +247,7 @@ echo "Hello " . htmlspecialchars($_POST['name']);
在本地 Web 服务器上,我们有此`target.php`文件。 它只是将过帐的值打印回客户。
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -268,7 +268,7 @@ print(content.decode())
脚本使用具有`Peter`值的`name`键发送请求。 数据使用`urllib.parse.urlencode()`方法进行编码,并在请求的正文中发送。
```java
```py
$ ./mpost.py
Hello Peter
......@@ -276,7 +276,7 @@ Hello Peter
这是`mpost.py`脚本的输出。
```java
```py
$ tail -1 /var/log/nginx/access.log
127.0.0.1 - - [23/Aug/2016:12:21:07 +0200] "POST /target.php HTTP/1.1"
200 37 "-" "Python-httplib2/0.8 (gzip)"
......@@ -289,7 +289,7 @@ $ tail -1 /var/log/nginx/access.log
在本节中,我们指定用户代理的名称。
```java
```py
<?php
echo $_SERVER['HTTP_USER_AGENT'];
......@@ -300,7 +300,7 @@ echo $_SERVER['HTTP_USER_AGENT'];
在 nginx 文档根目录中,我们有`agent.php`文件。 它返回用户代理的名称。
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -315,7 +315,7 @@ print(content.decode())
该脚本为`agent.php`脚本创建一个简单的 GET 请求。 在`headers`词典中,我们指定用户代理。 这可以通过 PHP 脚本读取,并返回给客户端。
```java
```py
$ ./user_agent.py
Python script
......@@ -327,7 +327,7 @@ Python script
客户端的`add_credentials()`方法设置用于领域的名称和密码。 安全领域是一种用于保护 Web 应用资源的机制。
```java
```py
$ sudo apt-get install apache2-utils
$ sudo htpasswd -c /etc/nginx/.htpasswd user7
New password:
......@@ -338,7 +338,7 @@ Adding password for user user7
我们使用`htpasswd`工具创建用于基本 HTTP 认证的用户名和密码。
```java
```py
location /secure {
auth_basic "Restricted Area";
......@@ -349,7 +349,7 @@ location /secure {
在 nginx `/etc/nginx/sites-available/default`配置文件中,我们创建一个安全页面。 领域的名称是“禁区”。
```java
```py
<!DOCTYPE html>
<html lang="en">
<head>
......@@ -370,7 +370,7 @@ This is a secure page.
`/usr/share/nginx/html/secure`目录中,我们具有上面的 HTML 文件。
```java
```py
#!/usr/bin/python3
import httplib2
......@@ -388,7 +388,7 @@ print(content.decode())
该脚本连接到安全网页; 它提供访问该页面所需的用户名和密码。
```java
```py
$ ./credentials.py
<!DOCTYPE html>
<html lang="en">
......
......@@ -10,7 +10,7 @@ Python 示例将 N 元素元组或序列解压缩为 N 个变量的集合。 Pyt
#### 1.1 解压示例 – 1
```java
```py
>>> data = (1, 2, 3)
>>> x, y, z = data
>>> x
......@@ -24,7 +24,7 @@ Python 示例将 N 元素元组或序列解压缩为 N 个变量的集合。 Pyt
#### 1.2 解压示例 – 2
```java
```py
>>> data = [ 'Lokesh', 37, 73.5, (1981, 1, 1) ]
>>> name, age, weight, dob = data
......@@ -51,7 +51,7 @@ Python 示例将 N 元素元组或序列解压缩为 N 个变量的集合。 Pyt
#### 1.3 解压示例 – 3
```java
```py
>>> greeting = 'Hello'
>>> a, b, c, d, e = greeting
......@@ -69,7 +69,7 @@ Python 示例将 N 元素元组或序列解压缩为 N 个变量的集合。 Pyt
如果元素的数量**不匹配**,则会出现错误。
```java
```py
>>> p = (4, 5)
>>> x, y, z = p
......
......@@ -8,7 +8,7 @@ Python 示例,用于解包元组或序列或可迭代,以便该元组可能
**Python“星表达式”可用于解包任意长度的元组。**
```java
```py
>>> employee = ('Lokesh', 'email@example.com', '111-222-333', '444-555-666')
>>> name, email, *phone_numbers = employee
......@@ -22,7 +22,7 @@ Python 示例,用于解包元组或序列或可迭代,以便该元组可能
```
```java
```py
>>> *elements, end = [1,2,3,4,5,6,7,8]
>>> elements
......@@ -37,7 +37,7 @@ Python 示例,用于解包元组或序列或可迭代,以便该元组可能
有时,您可能想拆开值并将其丢弃。 解包时,您不仅可以指定裸露的`*`,还可以使用通用的一次性变量名,例如“`_`”或忽略。
```java
```py
>>> record = ('Lokesh', 37, 72.45, (1, 1, 1981))
>>> name, *_, (*_, year) = record #Only read name and year
......
......@@ -6,7 +6,7 @@
在 python 中,“**多重字典**”一词用于指代字典,在其中可以将**单键映射到多个值**。 例如:
```java
```py
multidictWithList = {
'key1' : [1, 2, 3],
'key2' : [4, 5]
......@@ -27,7 +27,7 @@ multidictWithSet = {
要轻松构造此类词典,可以在`collections`模块中使用`defaultdict``defaultdict`的功能是它会自动初始化第一个值,因此您只需专注于添加项目即可。
```java
```py
from collections import defaultdict
d1 = defaultdict(list) #list backed multidict
......
......@@ -10,7 +10,7 @@
要轻松构造`OrderedDict`,可以在`collections`模块中使用`OrderedDict`
```java
```py
from collections import OrderedDict
d = OrderedDict()
......@@ -36,7 +36,7 @@ for key in d:
项目的顺序在序列化为 JSON 时也会保留。
```java
```py
from collections import OrderedDict
import json
......
......@@ -8,7 +8,7 @@ Python 示例,用于查找 2 个或更多词典之间的常见项目,即字
最简单的方法是查找键,值或项的交集,即使用两个字典之间的 `&` 运算符。
```java
```py
a = { 'x' : 1, 'y' : 2, 'z' : 3 }
b = { 'u' : 1, 'v' : 2, 'w' : 3, 'x' : 1, 'y': 2 }
......@@ -22,7 +22,7 @@ set( a.items() ) & set( b.items() ) # Output set([('y', 2), ('x', 1)])
`Set.intersection()`方法返回一个集合,该集合包含集合`a`和集合`b`中都存在的项。
```java
```py
a = { 'x' : 1, 'y' : 2, 'z' : 3 }
b = { 'u' : 1, 'v' : 2, 'w' : 3, 'x' : 1, 'y': 2 }
......
......@@ -12,7 +12,7 @@
以下 python 程序使用`heapq`模块来实现一个简单的优先级队列:
```java
```py
import heapq
class PriorityQueue:
......@@ -33,7 +33,7 @@ class PriorityQueue:
让我们看一个如何使用上面创建的优先级队列的示例。
```java
```py
class Item:
def __init__(self, name):
self.name = name
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册