>백엔드 개발 >파이썬 튜토리얼 >입문 작업 목록에서 Python 학습

입문 작업 목록에서 Python 학습

高洛峰
高洛峰원래의
2017-03-26 17:00:182859검색

4.1 전체 목록 순회

목록의 모든 요소를 ​​순회하고 각 목록에서 동일한 작업을 수행해야 하는 경우가 많습니다. 반복적인 작업, 반복적인 작업을 할 때 유용합니다. 예를 들어, 게임에서는 각 인터페이스 요소를 동일한 거리로 변환해야 할 수 있습니다. 숫자가 포함된 목록의 경우 웹 사이트의 각 요소에 대해 동일한 통계 작업을 수행해야 할 수 있으며, 각 제목을 표시해야 할 수도 있습니다. 기사 3개 . 목록의 각 요소에 대해 동일한 작업을 수행해야 하는 경우 Python에서 for 루프를 사용할 수 있습니다.

마술사 목록이 있으면 각 마술사의 이름을 출력해야 합니다. 이를 위해 목록의 각 이름을 개별적으로 가져올 수 있지만 이로 인해 많은 문제가 발생합니다. 예를 들어 목록이 너무 길면 중복된 코드가 많이 포함됩니다. 또한 목록 길이가 변경될 때마다 코드를 수정해야 합니다. for 루프를 사용하면 Python에서 이러한 문제를 처리하도록 할 수 있습니다.

my_foods 목록에 새 요소 friend_foods에 요소를 추가하면 새 요소가 원래 메모리 목록에도 추가되므로 할당이 사용되면 Python은 새 메모리를 열지 않고 두 변수를 병합합니다. 두 변수는 관련되어 있습니다. 위 그림과 같이 두 가지의 최종 결과는 여전히 동일합니다.

입문 작업 목록에서 Python 학습 슬라이스를 사용할 때의 상황을 살펴보겠습니다.

슬라이스를 사용하므로 슬라이스를 추가하면 friend_foods를 저장하기 위한 새로운 메모리 목록이 열립니다. new 요소는 아래와 같습니다.

입문 작업 목록에서 Python 학습

두 개의 서로 다른 메모리 할당 목록이므로 my_foods에 새 요소를 추가할 때는 메모리에만 추가하세요. list of my_foods; friend_foods에 새 요소를 추가하면 friend_foods가 속한 메모리 목록에만 새 요소가 추가되므로 출력 결과가 다릅니다.

입문 작업 목록에서 Python 학습 따라서 Python에서는 할당과 슬라이싱의 작동 메커니즘이 다릅니다. 값을 할당할 때 이 점에 주의해야 합니다. 이전에는 크게 신경 쓰지 않았지만 주의하겠습니다. 미래에. 특히 작업을 복사할 때.

요약: 하나의 매개변수를 다른 매개변수와 동일하게 만들면, 즉 a = b가 두 매개변수 사이에 할당되면 공유 메모리입니다. Python

내부에는 새로운 공간이 없습니다.

한번 해보세요

4-10 슬라이싱: 이 장에서 작성한 프로그램을 선택하고 마지막에 몇 줄의 코드를 추가하여 다음 작업을 완료하세요.

1. "목록의 처음 세 항목은 다음과 같습니다." 메시지를 인쇄합니다. 슬라이싱을 사용하여 목록의 처음 세 요소를 인쇄합니다.

2. "목록의 세 항목; 목록 중간에 ", 슬라이싱을 사용하여 목록 중간에 있는 세 요소를 인쇄합니다.

3. "목록의 마지막 세 항목은 다음과 같습니다. "라는 메시지를 인쇄하고, 슬라이싱을 사용하여 다음을 인쇄합니다. 목록의 마지막 세 요소.

4-11 당신의 피자와 나의 피자: 연습 4-1을 완료하기 위해 작성한 프로그램에서 피자 목록의 복사본을 만들고 이를 friend_pizzas 변수에 저장합니다.

1. 원래 피자 목록에 피자를 추가합니다.

2. friend_pizzas 목록에 다른 피자를 추가합니다.

3. 두 개의 다른 목록이 있는지 확인합니다. 이렇게 하려면 "My favorite pizzas are:"라는 메시지를 인쇄한 다음 for 루프를 사용하여 두 번째 목록을 인쇄합니다.

피자가 올바른 목록에 추가되었는지 확인하세요.

4-10: 이 질문은 주로 목록 조각의 표현 방법을 검사합니다. 특히 L.[-1]은 마지막 요소를 나타냅니다. 이 방법의 사용은 마지막 몇 가지 요소를 검사하는 데 매우 중요합니다. . 매번 사용됩니다. 리스트 슬라이싱의 표현은 요소 수에서 중간에 콜론으로 구분됩니다.

숫자 = [2,3,8,9,0,3,5,7]
print("목록의 처음 세 항목은 다음과 같습니다. ")
print(digits[: 3])
print("n목록 중간의 3개 항목은 다음과 같습니다: ")
print(digits[2:5])
print("n목록의 마지막 3개 항목은: ")
print(digits[-3:])

실행 결과는 다음과 같습니다.

목록의 처음 세 항목은 다음과 같습니다.
[2, 3, 8]
목록 중간의 세 항목은 다음과 같습니다.
[8, 9, 0]
목록의 마지막 세 항목은 다음과 같습니다.
[3, 5, 7]

4- 11 이 질문은 주로 슬라이싱의 사용법과 목록 복사 방법을 검토합니다. 목록 복사는 슬라이싱을 통해 완료되어야 하며 이는 Python의 작동 원리에 따라 결정됩니다.

피자 = ["새로운 요크 스타일","시카고 스타일","캘리포니아 스타일"]
friend_pizzas = 피자[:]
pizzas.append("noodle" )
friend_pizzas.append("rice")
print("내가 가장 좋아하는 피자는: ")
for pizzas in pizza:
print(pizza)
print(pizzas)

print("n내 친구가 가장 좋아하는 피자는 다음과 같습니다: ")
for friend_pizza in friend_pizzas:
print(friend_pizza)
print(friend_pizzas)

실행 결과:

제가 가장 좋아하는 피자는
뉴욕 스타일
시카고 스타일
캘리포니아 스타일
국수
['뉴욕 스타일', '시카고 스타일', '캘리포니아 스타일', '국수']입니다.
내 친구가 좋아하는 피자는
뉴욕 스타일
시카고 스타일
캘리포니아 스타일

['뉴욕 스타일', '시카고 스타일', '캘리포니아 스타일', ' rice']

4.5 Yuanzu

목록은 프로그램이 실행되는 동안 변경될 수 있는 데이터 세트를 저장하는 데 이상적입니다. 목록은 수정 가능하며 이는 웹사이트의 사용자 목록이나 게임의 캐릭터 목록을 작업할 때 중요합니다. 그러나 때때로 우리는 일련의 불변 요소를 생성해야 하며 Yuanzu는 이러한 요구를 충족할 수 있습니다. 파이썬은 수정될 수 없는 값을 불변(immutable)이라고 부르고, 불변 목록을 프리미티브(Primitive)라고 부릅니다.

4.5.1 프리미티브 정의

프리미티브는 목록처럼 보이지만 대괄호 대신 괄호로 표시됩니다. 튜플이 정의되면 목록 요소처럼 인덱스를 사용하여 해당 요소에 액세스할 수 있습니다.

예를 들어 크기가 변경되어서는 안 되는 직사각형이 있는 경우 길이와 너비를 튜플에 저장하여 수정할 수 없도록 할 수 있습니다.

Dimensions.py

Dimensions = (200,50)
print(dimensions[0])
print(dimensions[1])

먼저 정사각형 대신 괄호를 사용하는 원래 치수를 정의합니다. 괄호. 다음으로, 목록 요소에 액세스할 때와 동일한 구문을 사용하여 튜플의 각 요소를 개별적으로 인쇄합니다.

200

50

정의에 따르면 튜플 요소는 요소 차원의 요소를 수정하고 결과가 무엇인지 살펴보겠습니다.

Dimensions = (200,50)
Dimensions[0] = 250
print(dimensions) 코드는 첫 번째 요소의 값을 수정하려고 시도하여 Python이 유형 오류 메시지를 반환하도록 합니다. 조상을 수정하려는 시도는 금지되어 있으므로 Python은 조상의 요소에 값을 할당할 수 없음을 지적합니다:

Traceback(가장 최근 호출 마지막):
파일 "/home/zhuzhu/title4 /dimensions.py ", 2행, module>
Dimensions[0] = 250
TypeError: 'tuple' object는 항목 할당을 지원하지 않습니다.

Python은 코드가 직사각형의 크기를 수정하려고 시도할 때 오류를 보고하는데, 이는 우리가 원하는 것이기 때문에 좋습니다.

4.5.2 조상의 모든 값 순회

像列表一样,也可以使用for循环来遍历元组中的所有值:

    dimensions = (200,50)
    for dimension in dimensions:
            print(dimension)

    就像遍历列表时一样,Python返回元组中所有的元素:

    200

    50

4.5.3  修改元组变量

    虽然不能修改元组的元素,但可以给存储元组的变量赋值。因此,如果要修改前述矩形的尺寸,可重新定义整个元组:

    dimensions = (200,50)
    print("Original dimensions: ")
    for dimension in dimensions:
           print(dimension)
    dimensions = (400,100)
    print("\nModified dimensions: ")
    for dimension in dimensions:
            print(dimension)

    我们首先定义了一个元组,并将其存储的尺寸打印了出来;接下来,将一个新元组存储到变量dimensions中;然后,打印新的尺寸。这次,Python不会报告任何错误,因为给元组变量赋值是合法的:

    Original dimensions:
    200
    50
    Modified dimensions:
    400
    100

    相比于列表,元组是更简单的数据结构.如果需要存储的一组值在程序的整个生命周期内都不变,可使用元组。

动手试一试

    4-13 自助餐: 有一家自助式餐厅,只提供五种简单的食品。请想出五种简单的食品,并将其存储在一个元祖中。

    1、使用一个for循环将该餐馆提供的五种食品都打印出来;

    2、尝试修改其中的一个元素,核实Python确实会拒绝我们这样做;

    3、餐馆调整了菜单,替换了它提供的某中两种实物。请编写一个这样的代码块;给元组变量赋值,并使用一个for循环将新元组中的每个元素都打印出来。

    分析:本题主要考察元组的性质及用法,我们知道,元组中的元素是不可以修改的,但是元组是可以重新赋值的,我们虽然不能修改元组中的元素,但是我们可以整体修改元组,元组其他的性质跟列表的性质都是一样的,就是不能对元组本身就行修改,比如添加,删除,赋值等。

    cafeterias = ("rice","noodle","porridge","hamburger","pizza")
    for cafeteria in cafeterias:
            print(cafeteria)
    cafeterias[-1] = "dami"

    运行结果如下:

rice

noodle
porridge
hamburger
pizza
Traceback (most recent call last):
  File "/home/zhuzhu/title4/Cafeterias.py", line 5, in
    cafeterias[-1] = "dami"
TypeError: 'tuple' object does not support item assignment

从运行结果可以看出,当我们试图修改元组的元素是,发生了错误,提示我们不能修改元组的元组值

cafeterias = ("rice","noodle","porridge","hamburger","pizza")
print("Original menu: ")
for cafeteria in cafeterias:
    print(cafeteria)
#cafeterias[-1] = "dami"
cafeterias = ("pizza",'hamburger','rice','milk','Drumsticks')
print("\nModified menu: ")
for cafeteria in cafeterias:print(cafeteria)运行结果如下:Original menu: 
rice
noodle
porridge
hamburger
pizza
Modified menu: 
pizza
hamburger
rice
milk
Drumsticks
从运行结果可以看出,虽然我们不能修改元组中元素的值,但我们可以整体重新给元组进行赋值,这样是允许的,因而我们可以对元组重新赋值,这是允许的,
也是合法的,系统不会报错。
4.6  设置代码格式    随着我们编写的程序越来越长,有必要了解一些代码格式设置的约定。请花时间让我们的代码进可能易于阅读;让代码易于阅读有助于我们掌握程序是做什
么的,也可以帮助他人理解我们编写的代码。
    为确保所有人编写的代码的结构都大致一致,Python程序员都遵循一些格式设置约定。学会编写整洁的Python后,就能明白他人编写的Python代码的整体
结构——只要他们和你遵循相同的指南。要称为专业程序员,应从现在开始就遵循这些指南,以养成良好的习惯。

4.6.1  格式设置指南若要提出Python语言修改建议,需要编写Python改进提案(Python Enhancement Proposal,PEP).PEP8是最古老的PEP之一,它向Python程序员提供了代
码格式设置指南。PEP8的篇幅很长,但大都与复杂的编码结构相关。
    Python格式设置指南的编写者深知,代码被阅读的次数比编写的次数多。代码编写出来后,调试时你需要阅读它;给程序添加新功能时,需要花很长的时间
阅读代码;与其他程序员分享代码时,这些程序员也将阅读它们。
    如果一定要在代码易于编写和易于阅读之间做出选择,Python程序员几乎总是选择后者。下面的指南可帮助我们从一开始就编写除清晰的代码。
4.6.2  缩进
    PEP 8建议每级缩进都使用四个空格,这即可提高可读性,又留下了足够的多级缩进空间。
    在字处理文档中,大家常常使用制表符而不是空格来缩进。对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让Python解释器感到迷惑
。每款文本都提供了一种设置,可将输入的制表符转换为指定数量的空格。我们在编写代码时应该使用制表符键,但一定要对编辑器进行设置,使其在文
档中插入空格而不是制表符。
    在程序中混合制表符和空格可能导致极难解决的问题。如果我们混合使用了制表符和空格,可将文件中所有的制表符转换为空格,大多数编辑器都提供了这
样的功能。
4.6.3 行长
    很多Python程序员都建议每行不超过80字符。最初制定这样的指南时,在大多数计算机中,终端窗口每行只能容纳79字符;当前,计算机屏幕每行可容纳的
字符数多得多,为何还要使用79字符的标准行长呢?这里有别的原因。专业程序员通常会在同一个屏幕上打开多个文件,使用标准行长可以让我们在屏幕上并排
打开两三个文件时能同时看到各个文件的整行。PEP 8还建议的行长都不超过72字符,因为有些工具为大型项目自动生成文档时,会在每行注释开头添加格式
化字符。
    PEP 8中有关行长的指南并非不可逾越的红线,有些小组将最大行长设置为99字符。在学习期间,我们不用过多考虑代码的行长,但别忘了,协作编写程序,
大家几乎都遵守PEP 8指南。在大多数编辑器中,都可设置一个视觉标志——通常是一条竖线,让你知道不能越过的界限在什么地方。
4.6.4  空行
要将程序不同部分分开,可使用空行。我们应该使用空行来组织程序文件,但也不能滥用;只要按本书的示例展示的那样做,就能掌握其中的平衡。例如,
如果我们有5行创建列表的代码,还有3行处理该列表的代码,那么用一个空行将这两部分隔开是合适的。然而,我们不应该使用三四个空行将它们隔开。
    空行不会影响代码的运行,但会影响代码的可读性。Python解释器根据水平缩进情况来解读代码,但不关心垂直间距。

Original menu:
rice
noodle
porridge
hamburger
pizza
Modified menu:
pizza
hamburger
rice
milk
Drumsticks

위 내용은 입문 작업 목록에서 Python 학습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.