学习日志(二) Python流程控制


这里写图片描述

流程控制知识点思维导图


1. 选择结构

1.1 语法结构

单选择结构

    x=int(input('请输入分数:'))
    if x>=90:
       print('A')

双选择结构

x=int(input('请输入分数:'))
if x>=90:
    print('A')
else:
    print('まだまだ')

多选择结构

x=int(input('请输入分数:'))
if x>=90:
    print('A')
elif x>80:
    print('B')
elif x>=60:
    print('C')
else:
    print('不及格')

复杂条件语句

x=int(input('请输入分数:'))
if x<60:
    print('不及格')
elif x>=60 and x<80:
    print('C')
elif x>=80 and x<=90:
    print('B')
else:
    print('A')

b=int(input())
if b<751 or b>9484:
    print('hahaha') 

嵌套结构

x=int(input('请输入分数:'))
if x>0 and x<=100:
    if x<60:
        print('不及格')
    elif x>=60 and x<80:
        print('C')
    elif x>=80 and x<=90:
        print('B')
    else:
        print('A')
else:
    print('error,请重新输入')

练习

1.判断周几

x=int(input('今日は何曜日:'))
if x>=0 and x<=7:
    if x==1:
        print('月曜日')
    elif x == 2:
        print('火曜日')
    elif x == 3:
        print('水曜日')
    elif x == 4:
        print('木曜日')
    elif x == 5:
        print('金曜日')
    elif x == 6:
        print('土曜日')
    elif x == 7:
        print('日曜日')
else:
    print('Error')

2.判断大小

x=int(input('请输入x值:'))
y=int(input('请输入y值:'))
if x!=y:
    if x>y:
        print('x大')
    else:
        print('y大')
else:
    print('请重新输入')

3.判断闰年

a=int(input('请输入一个年份'))
if (a%4==0 and a%100!=0) or (a%400==0):
    print('这是闰年')
else:
    print('这不是闰年')

4.判断登录

User={'idName':input('请输入您的用户名:'),'password':int(input('请输入您的密码:'))}
if User['idName']=='rongda' and User['password']==123:
    print('Successfully login!')
else:
    print('check your id or password for a second time')

5.判断水仙花数

x=int(input('请输入一个三位数:'))
a=x//100
b=(x-a*100)//10
c=x-a*100-b*10
# print(a,b,c)
if x==a**3+b**3+c**3:
    print('是一个水仙花数')
else:
    print('不是水仙花数')

2.循环结构

2.1 while循环

给定条件判断成立时执行循环,否则退出

count = 0
while count<10:
    print('这个数字是:',count)
    count+=1
print('输出完成')

练习.计算1到100的数列和

a=0;x=0
while a<100:
    a+=1
    x=x+a
print(x)

找出1至100中所有的奇数

a=0
while a<100:
    a+=1
    if a%2!=0:
        print(a)

2.2 for循环

直接遍历

lt=['wfcwf','afe',2,True]
for i in lt:
    print(i)

使用range()遍历

lt=['wfcwf','afe',2,True]
for i in range(len(lt)):
    print(lt[i])

遍历字典

dict1={'name':'able','age':'30','hobby':'swmming'}
for a,b in dict1.items():
    print(a,b)

练习

  1. 1-2+3-4…99
    i=0;j=1;a=0;b=0
    while i<100 and j<100:
        i+=2
        j+=2
        a+=i
        b+=j
    print(b-a)

    i = 0
    j = 1
    while j < 100:
        if j % 2 == 0:
            i-=j
        else:
            i += j
        j += 1
    print(i)

    a=0;b=0
    for i in range(0,100,2):
        a+=i
    for j in range(1,100,2):
        b+=j
    print(b-a)
  1. 13亿人口多少年后涨到26亿
    x=13;n=0
    while x<26:
        x*=1.008
        n+=1
    print(n)

3.循环嵌套

i=1
while i<6:
    j=0
    while j<=i:
        print('*',end=(''))
        j+=1
    i+=1
    print('')

for i in range(1,6):
    for j in range(0,i):
        print('*',end=(''))
    print('')

练习

  1. 打印九九乘法表
    for i in range(1,10):
        for j in range(1,i+1):
            print("%d*%d="%(i,j),i*j,sep=(''),end=('\t'))
        print()
    print()
    for i in range(1,10):
        for j in range(i,10):
            print("%d*%d=" % (i, j), i * j, sep=(''), end=('\t'))
        print()
    print()
    for i in range(1,10):
        for j in range(1,i):
            print(' '*5,end=('\t'))
        for j in range(i,10):
            print("%d*%d=" % (i, j), i * j, sep=(''), end=('\t'))
        print()
    print()
    for i in range(9,0,-1):
        for j in range(i,0,-1):
            print(' ' * 5, end=('\t'))
        for j in range(9,i-1,-1):
            print("%d*%d=" % (i, j), i * j, sep=(''), end=('\t'))
        print()

100-1000中的水仙花数

for i in range(100,1000):
    if(i//100)**3+(i%100//10)**3+(i%10)**3==i:
        print(i,end=(' '))

2. 五位回纹数

b=0
for i in range(10000,100000):
    if (i//10000==i%10) and (i%10000//1000==i%100//10):
        print(i,end=(' '))
        b+=1
print('\n')
print(b)

3. 冒泡排序
小>>大
相邻两个元素进行比较,小的放前,大的换后,重复此操作直到最后.

a=[7,5,-2,6]
for i in range(len(a)-1):
    for j in range(len(a)-1-i):
        # print(j,end=(' '))
        if a[j]<a[j+1]:
            a[j],a[j+1]=a[j+1],a[j]
print(a)

推导式

it=[i for i in range(1,11)]
print(it)

生成器generator
一边循环一边计算,从而节省大量的空间
生成器可以被用作控制循环的迭代行为, 它使用yield返回值函数,每次调用之后会暂停;使用next()函数进 行调用,计算出他的下一个元素的值,直到计算出最后一个元素,

循环控制

  • break
    -在语句块执行过程中终止循环,并且跳出整个循环
    for i in range(10):
        if i == 4:
            break
        print(i)
  • continue
    在语句块执行过程中终止当前循环,跳出该 次循环,执行下一次循环
    i=100
    while i >0:
        i-=1
        if i % 2 ==0:
            continue
        print(i)
  • pass
    是空语句,是为了保持程序结构的完整性
    for letter in 'python':
        if letter == 'h':
            pass
            print ('占个位')
        print(letter)

练习.

  1. 输出三次错误及退出
    i=0
    while i<3:
        User = {'idName': input('请输入您的用户名:'), 'password': int(input('请输入您的密码:'))}
        if User['idName'] == 'rongda' and User['password'] == 123:
            print('Successfully login!')
            break
        else:
            i+=1
            print('Resign your id or password for a second time','you only have',3-i,'chance' )
            if i==3:
                print('Sorry, your chance has already run out' )
  1. 1,2,3,4组成各位互不相同的三位数
    g=0
    for i in range(1,5):
        for j in range (1,5):
            for k in range (1,5):
                if i!=j and i!=k and j!=k:
                    g+=1
                    print(i*100+j*10+k,end=(' '))
                    print(g)

猜你喜欢

转载自blog.csdn.net/qq_27171347/article/details/81030459
今日推荐