[파이썬 기초 튜토리얼] (2): 선택 구조와 루프 구조

QQ에 문의하세요: 970586718

블로그 주소: https://blog.csdn.net/m0_46521785

구조 선택

다중 지점 구조

if (条件A):
	pass
elif (条件B):
	pass
elif (条件C):
	pass
elif ...:
    pass
else:
	pass

여러 분기가 필요한 프로그램을 작성할 때 변수 값이 첫 번째 if에서 변경되어 두 번째 if로 이어질 수 있으므로 여러 if 대체를 사용하지 마십시오.

구현 프로세스

if 문을 실행할 때 조건을 먼저 계산하여 최종 결과가 True인지 False인지 판단하고, True이면 if 문의 프로그램 블록에 들어가고, 그렇지 않으면 다음 조건을 판단합니다.

조건부 중첩

들여쓰기가 보장되는 한 if 문의 각 수준에 대해 다른 if 문을 작성할 수 있습니다. Python에서 들여쓰기는 계층적 관계입니다.

a = 1
b = 2
if a>0:
    if b<0:
        print(111)
    else:
        print(222)
else:
    if b<0:
        print(666)
    else:
        print(777)

연습문제

  • 배수의 판단

    程序的功能是判断一个整数是否能被711整除,若能被711整除,则输出"Yes",否则输出"No",请补充程序。
    
  • 소수 판단

    输入一个数字判断它是不是素数(质数)
    
  • 정수 x, y, z를 입력하고 x 3+y 3+z^3과 1000 사이의 관계를 결정합니다.

    输入整数x,y,z,若x^3+y^3+z^3>1000,则输出x^3+y^3+z^3-1000的结果,否则输出三个数之和。
    注:用eval()函数结合input()函数同时输入3个整数,输入数字时用逗号分隔
    
  • 결혼 질문

    输入年龄和性别,判断你当前的个人情况!
    男性小于30岁显示:young,30岁到36岁之间显示:marriageable age,大于36岁显示:old。
    女性小于25岁显示:young,25岁到30岁之间显示:marriageable age,大于30岁显示:old。
    

루프 구조

for 루프(알려진 루프 수)

나는 x에 있어

x는 반복 가능한 객체입니다. 반복 가능한 객체란 무엇입니까? 각 요소를 차례로 나타낼 수 있다는 의미입니다.

일반적인 반복 가능 객체에는 문자열, 튜플, 목록, 사전 및 집합이 포함됩니다.

a = 'hzau'
for i in a:
    print(i)
print('#'*30)

b = list(a)  # 创建一个列表,同时学习一下,直接对字符串使用list强制转化的话,每一个字符都对应一个元素
print(b)
for i in b:
    print(i)

범위(a,b)

Range는 반복자입니다. 공장에서 제품을 생산하는 것처럼 반복자는 반복 가능한 개체를 생성할 수 있습니다.

그것이 얻는 결과는 범위 객체이고, 구성된 콘텐츠는 a(a가 작성되지 않으면 기본적으로 0에서 시작)부터 b(b 제외)(Hu Bin 교사가 명명함)까지의 정수 의사 목록입니다.

무슨 뜻인지는 아래 코드를 보면 알 수 있습니다.

a = range(1,10)
print(a)
print(list(a))  # 看看a里到底包含什么东西

print(list(a))를 통해 range(1,10)은 요소가 1-9인 목록을 만드는 것과 동일하다는 것을 간단히 이해할 수 있습니다.

for i in range(1,10):
    print(i)

범위(x) 안에 있는 i에 대해

i in range(len(x)) 라고 쓰는 경우가 많은데 왜 이렇게 쓰는 걸까요? 왜냐하면 인덱스와 요소를 일대일 대응으로 작성하기 때문입니다.

a = 'hzau'
for i in range(len(a)):
    print(i,a[i])

for i in x가 할 수 있는 작업은 for i in range(x)가 할 수 있으므로 for i in range(x)를 사용하는 것이 권장되며 그 반대의 경우도 마찬가지입니다.

(아래에서 말하고 싶은 것과 마찬가지로 이 문장에 대해 주의 깊게 생각해 보십시오. for 루프가 할 수 있는 모든 것, while 루프도 할 수 있지만 그 반대는 잘못된 것입니다.)

for의 두 가지 형태는 언제 사용되나요?

주제에 따라 다르며 구체적인 상황을 자세히 분석해야 한다는 것은 여전히 ​​오래된 속담입니다.

코드를 먼저 작성하고 for i in x를 마지막에 작성할 수 없다는 것을 확인한 다음 for i in range(x)로 변경할 수 있습니다.

두뇌를 사용하고 싶지 않다면 for i in range(x) 형식으로 작성하세요. 왜냐하면 for i in range(x)는 for i in x가 할 수 있는 모든 것을 할 수 있기 때문입니다.

while 루프(알려진 루프 조건)

구조는 다음과 같습니다

while 条件:
    循环体

조건이 충족되면 루프 본문의 내용이 실행됩니다. 예를 들어

x=0
while x<=5:
	print(x)
    x+=1
#结果为0 1 2 3 4 5

무한 루프

while의 판단 조건이 항상 True인 경우 프로그램은 항상 루프에 있으므로 다음 코드를 실행할 수 없습니다.

while 1:
    print(666)

하지만 무한 루프에 판단 조건을 추가하면 좋은 역할을 할 수 있는데, 예를 들어 for 루프 대신 while 루프를 사용합니다.

mystr = 'hzau'
index = 0
while True:  # 创建死循环
    if index >= len(mystr):  # 设置跳出循环的条件
        break
    print(mystr[index])
    index += 1

일부 학생들은 이것이 실제로 다음과 같다는 것을 알 수 있습니다.

mystr = 'hzau'
index = 0
while index >= len(mystr):  # 创建死循环
    print(mystr[index])
    index += 1

예, 맞습니다. 하지만 분명히 첫 번째 코드에는 더 적은 두뇌와 간단한 논리가 필요합니다.

계속하다与휴식

  • continue는 현재 사이클을 종료하고 더 이상 현재 사이클의 루프 본문 뒤에 있는 코드를 실행하지 않고 다음 사이클을 계속 실행하는 것입니다.
  • break는 전체 루프를 종료합니다.
for i in range(3):
    if i==1:
        continue
    print(i,666)
print('###########################')
for i in range(3):
    if i==1:
        break
    print(i,777)

이는 시험 중에 종종 설명됩니다: break는 가장 안쪽 루프에서 빠져나오는 데 사용됩니다. 루프에서 빠져나온 후 프로그램은 루프 코드 이후 계속 실행됩니다. [이 문장이 맞습니다]

break는 가장 안쪽 루프에서만 점프할 수 있는데, 이는 가장 가까운 루프 구조만 끝낼 수 있다는 뜻입니다.가장 가깝다고 말하는 이유는 무엇입니까? 루프도 중첩될 수 있으므로 다음 예를 보면 이해가 될 것입니다.

for i in range(3):
    for j in range(3):
        if j==1:
            break
        print('i=%d,j=%d'%(i,j))

그럼 외부 레이어에서 뛰쳐나오려면 어떻게 해야 할까요?플래그를 생성하는 방법을 사용할 수 있습니다.플래그를 생성한다는 것은 무엇입니까?조건을 생성하고, 조건 상태에 따라 나중에 코드를 어떻게 작성해야 할지 판단하는 것입니다. . 이 기능은 이해만 가능합니다.

flag = 1
for i in range(3):
    if not flag:  # 这么写为什么是对的呢?起到的作用和 if flag==0 一样吗?
        break
    for j in range(3):
        if j==1:
            flag = 0
            break
        print('i=%d,j=%d'%(i,j))

for 루프와 while 루프 중 선택

많은 학생들이 프로그램에서 for 루프를 사용할지, while 루프를 사용할지 매우 혼란스러워하는데, 사실 한 문장만 기억하면 괜찮을 것입니다.

  • for 루프를 사용하여 루프 수를 알아보세요.
  • while 루프를 사용하여 루프 조건만 알 수 있습니다.

for 루프가 할 수 있는 일, while 루프도 할 수 있지만 그 반대는 잘못되었습니다(자세히 경험해 보세요)

실제로 프로그램을 작성할 때 for 루프를 자주 사용하는 반면, while 루프는 덜 자주 사용됩니다.

for-else 루프와 while-else 루프

有个了解就可以了,知道有这么种形式,考的不是很多

루프 본문을 실행한 후 깨지지 않으면 else의 내용이 계속 실행됩니다.

x=0
while x<=5:
	print(x)
    x+=1
else:
    print('进入else啦')
###########################
x=0
while x<=5:
	if x==1:
        print(i)
        break
	print(x)
    x+=1
else:
    print('进入else啦')

연습문제

질문을 하기 전에, 일정한 횟수만큼 루핑을 하고 있는지, 아니면 루핑 조건을 알고 있는지 생각해 보고 어떤 루핑 방법을 사용할지 결정하세요.

  • 산수

    已知y=1+1/3+1/5++1/2n-1:
    求y<3时的最大n值以及最大n值对应的y值(y值保留小数点后2)
  • 샤오리 수영

    小玉开心的在游泳,可是她很快难过的发现,自己的力气不够,游泳好累哦。已知小玉第一步能游2米,可是随着越来越累,力气越来越小,她接下来的每一步都只能游出上一步距离的98%。
    现在小玉想知道,如果要游到距离x米的地方,她需要游多少步呢。请你编程解决这个问题。
    
  • 원숭이가 복숭아를 먹는다

    猴子摘下若干个桃子,第一天吃了桃子的一半多一个,以后每天吃了前一天剩下的一半多一个,到第n天吃以前发现只剩下一个桃子。
    编写程序实现:据输入的天数计算并输出猴子共摘了几个桃子
    
  • 합집합

    输入一个数,判断哪三个正整数的和与这个数字相等
    

문제에 대해 생각하기

  • 무엇이 True를 나타낼 수 있나요? 1이 True를 나타낼 수 있나요? 다른 표현 방법은 없나요?

  • 아래 코드에 뭔가 문제가 있다고 생각하시나요?

    a = 1
    print(a+True)
    
  • for 루프를 사용할 때와 while 루프를 사용할 때

  • 계속(Continue)과 중단(Break)의 기능을 명확하게 기억하시나요?

  • for-else 루프와 while-else 루프 구조에 대해 들어본 적이 있습니까?

  • 다음 문제를 해결하는 코드를 작성하세요.

    输入一个数字n,返回n以内的斐波那契数列。
    注:斐波拉契数列由01开始,之后的数就是由之前的两数相加而得出:0, 1, 1, 2, 3, 5, 8, 13, 21
    【样例输入】(输入大于3的整数值)
    input a number please:200
    【样例输出】
    1,1,2,3,5,8,13,21,34,55,89,144,
    

추천

출처blog.csdn.net/m0_46521785/article/details/110914686#comments_28568636