版权声明:本文为博主原创文章,转载请注明出处,不得用于商业用途。 https://blog.csdn.net/pilihaotian/article/details/80279025
13、Python列表
Python中最基本的数据结构是列表。一个列表的每个元素被分配一个数字来表示它的位置或索引。 第一个索引为
0
,第二个索引为
1
,依此类推。
Python有六种内置的序列类型,但最常见的是列表和元组,将在本教程中看到。
可以在列表上执行各种类型操作。这些操作包括索引,切片,添加,乘法和检查成员身份。此外,Python还具有内置函数,用于查找序列的长度和查找其最大和最小的元素。
1.Python列表
列表是Python中最通用的数据类型,可以写成方括号之间的逗号分隔值(项)列表。列表中的项目不必是相同的类型,这一点和C语言中数组有差别。
创建列表就在方括号之间放置不同的逗号分隔值。 例如 -
list1
=
[
'physics'
,
'chemistry'
,
1997
,
2000
];
list2
=
[
1
,
2
,
3
,
4
,
5
];
list3
=
[
"a"
,
"b"
,
"c"
,
"d"
];
类似于字符串索引,列表索引从
0
开始,列表可以被切片,连接等等。
2.访问列表中的值
要访问列表中的值,使用方括号进行切片以及索引或索引,以获取该索引处可用的值。
3.更新列表
可以通过在分配运算符左侧给出切片来更新列表的单个或多个元素,可以使用
append()
方法添加到列表中的元素。
4.删除列表元素
要删除列表元素,并且如果确切知道要删除哪些元素可以使用
del
语句。如果不知道要删除哪些项目,可以使用
remove()
方法。
14、Python元组
和列表类似,不可变
15、Python日期和时间
Python程序可以通过多种方式处理日期和时间。日期格式之间的转换是计算机常见问题。Python的时间(
time
)和日历(
calendar
)模块可用于跟踪日期和时间。
Python中有提供与日期和时间相关的
4
个模块。它们分别是 -
模块
|
说明
|
time
|
time
是一个仅包含与日期和时间相关的函数和常量的模块,在本模块中定义了
C/C++
编写的几个类。 例如,
struct_time
类。
|
datetime
|
datetime
是一个使用面向对象编程设计的模块,可以在Python中使用日期和时间。它定义了几个表示日期和时间的类。
|
calendar
|
日历是一个提供函数的模块,以及与
Calendar
相关的几个类,它们支持将日历映像生成为text,html,….
|
locale
|
该模块包含用于格式化或基于区域设置分析日期和时间的函数。
|
1. 时间间隔
时间间隔是以秒为单位的浮点数。 从1970年1月1日上午12:00(
epoch
),这是一种时间的特殊时刻表示。
在Python中,当前时刻与上述特殊的某个时间点之间以秒为单位的时间。这个时间段叫做Ticks。
time
模块中的
time()
函数返回从1970年1月1日上午12点开始的秒数。
但是,这个形式不能表示在时代(
1970年1月1日上午12:00
)之前的日期。在未来的日子也不能以这种方式表示 - 截止点是在
2038
年的UNIX和Windows的某个时刻。
2. 什么是TimeTuple?
许多Python时间函数将时间处理为
9
个数字的元组。
一个示例
import
time
print
(
time
.
localtime
());
这将产生如下结果:
time.struct_time(tm_year = 2016, tm_mon = 2, tm_mday = 15, tm_hour = 9, tm_min = 29, tm_sec = 2, tm_wday = 0, tm_yday = 46, tm_isdst = 0)
上面的元组相当于
struct_time
结构。
2.1.获取当前时间
要将从时间浮点值开始的秒数瞬间转换为时间序列,将浮点值传递给返回具有所有有效九个项目的时间元组的函数(例如本地时间)。
#!/usr/bin/python3
import
timelocaltime
=
time
.
localtime
(
time
.
time
())
print
(
"Local current time :"
,
localtime
)
# 当前时间
curtime
=
time
.
strftime
(
"%Y-%m-%d %H:%M:%S"
,
time
.
localtime
())
print
(
curtime
)
执行上面代码,这将产生如下结果 -
Local current time : time.struct_time(tm_year=2017, tm_mon=6, tm_mday=20, tm_hour=23,tm_min=9, tm_sec=36, tm_wday=1, tm_yday=171, tm_isdst=0)Curtime is => 2017-06-20 23:09:36
2.2.获取格式化时间
可以根据需要格式化任何时间,但也可使用可读格式获取时间的简单方法是 -
asctime()
-
import
timelocaltime
=
time
.
asctime
(
time
.
localtime
())
print
(
"Local current time :"
,
localtime
)
执行上面代码,这将产生如下结果 -
Local current time : Mon Feb 15 10:32:13 2018
2.3.获取一个月的日历
calendar
模块提供了广泛的方法来显示年历和月度日历。
import
calendarcal
=
calendar
.
month
(
2021
,
11
)
print
(
"Here is the calendar:"
)
print
(
cal
)
执行上面代码后,将输出以下结果 -
November 2021Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 16 17 18 19 20 2122 23 24 25 26 27 2829 30
3.时间模块
Python中有一个受欢迎的时间(
time
)模块,它提供了处理时间和表示之间转换的功能。
4.日历模块
calendar
模块提供与日历相关的功能,包括为给定的月份或年份打印文本日历的功能。
默认情况下,日历将星期一作为一周的第一天,将星期日作为最后一天。 如果想要更改这个,可调用
calendar.setfirstweekday()
函数设置修改。
5.其他模块和功能
如果您有兴趣,那么可以在Python中找到其他重要的模块和功能列表,其中包含日期和时间。以下列出其它有用的模块 -
- datetime模块
- pytz模块
- dateutil模块
16、Python函数
函数是一个有组织,可重复使用的代码块,用于执行单个相关操作。 函数为应用程序提供更好的模块化和高度的代码重用。
1.定义函数
可以定义提供所需函数的功能。 以下是在Python中定义函数的简单规则。
- 函数块以关键字def开头,后跟函数名和小括号(())。
- 任何输入参数或参数应放置在这些小括号中。也可以在这些小括号内定义参数。
- 每个函数中的代码块以冒号(:)开始,并缩进。
- 函数内的第一个语句可以是可选语句 - 函数的文档或docstring字符串。
- 语句return [expression]用于退出一个函数,可选地将一个表达式传回给调用者。如果没有使用参数的return语句,则它与return None相同。
语法
def
functionname
(
parameters
):
"function_docstring"
function_suite
return
[
expression
]
默认情况下,参数具有位置行为,您需要按照定义的顺序通知它们或调用它们。
示例
以下函数将字符串作为输入参数,并在标准屏幕上打印参数的值。
def
printme
(
str
):
"This prints a passed string into this function"
print
(
str
)
return
2.调用函数
定义一个函数需要为它起一个名字,指定要包括在函数中的参数并构造代码块。
当函数的基本结构完成,可以通过从另一个函数调用它或直接从Python提示符执行它。
3.通过引用与通过值传递
Python语言中的所有参数(参数)都将通过引用传递。如果在函数中更改参数所指的内容,则更改也会反映在调用函数的外部。
参数通过引用传递,引用在被调用函数内被覆盖。
4.函数参数
可以使用以下类型的形式参数来调用函数 -
- 必需参数
- 关键字参数
- 默认参数
- 可变长度参数
4.1.必需参数
必需参数是以正确的位置顺序传递给函数的参数。这里,函数调用中的参数数量应与函数定义完全一致。否则会出现语法错误 。
4.2.关键字参数
关键字参数与函数调用有关。 在函数调用中使用关键字参数时,调用者通过参数名称来标识参数。
这允许跳过参数或将其置于无序状态,因为Python解释器能够使用提供的关键字将值与参数进行匹配。
以下示例给出了更清晰的映射。请注意,参数的顺序并不重要。
printinfo( age = 25, name = "Maxsu" )printinfo(name = "Minsu", age = 26 )
4.3.默认参数
如果在该参数的函数调用中没有提供值,则默认参数是一个假设为默认值的参数。 以下示例给出了默认参数的想法,如果未通过,则打印默认年龄(
age
) :
def
printinfo
(
name
,
age
=
25
):
4.4.可变长度参数
在定义函数时,可能需要处理更多参数的函数。这些参数被称为可变长度参数,并且不像要求的和默认的参数那样在函数定义中命名。
以下是一个简单的例子 -
def
printinfo
(
arg1
,
*
vartuple
):
"This prints a variable passed arguments"
print
(
"Output is: "
,
arg1
)
for
var
in
vartuple
:
print
(
var
,
)
return
5.匿名函数
这些函数被称为匿名的,因为它们没有使用
def
关键字以标准方式声明。可以使用
lambda
关键字创建小型匿名函数。
- Lambda表单可以接受任意数量的参数,但只能以表达式的形式返回一个值。它们不能包含命令或多个表达式。
- 匿名函数不能直接调用打印,因为lambda需要一个表达式。
- Lambda函数有自己的本地命名空间,不能访问其参数列表和全局命名空间中的变量。
以下是一个示例,以显示
lambda
形式的函数如何工作 -
sum
=
lambda
arg1
,
arg2
:
arg1
+
arg2
print
(
"Value of total : "
,
sum
(
10
,
20
))
6.return语句
return [expression]
语句退出一个函数,可选地将一个表达式传回给调用者。没有参数的
return
语句与
return None
相同。
7.变量范围
程序中的所有变量在该程序的所有位置可能无法访问。这取决于在哪里声明一个变量。变量的范围决定了可以访问特定标识符的程序部分。Python中有两个变量的基本范围 -
- 全局变量
- 局部变量
8.全局与局部变量
在函数体内定义的变量具有局部作用域,外部定义的变量具有全局作用域。
局部变量只能在它们声明的函数内部访问,而全局变量可以通过所有函数在整个程序体中访问。 当调用一个函数时,它内部声明的变量被带入范围。 以下是一个简单的例子 -
total
=
0
# This is global variable.
# Function definition is here
def
sum
(
arg1
,
arg2
):
# Add both the parameters and return them."
total
=
arg1
+
arg2
;
# Here total is local variable.
print
(
"Inside the function local total : "
,
total
)
return
total
# Now you can call sum function
sum
(
10
,
20
)
print
(
"Outside the function global total : "
,
total
)
Python
当执行上述代码时,会产生以下结果 -
Inside the function local total
:
30
Outside the function
global
total
:
0