欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python自学20201202 while、for 、if、else、break、continue等相关用法

程序员文章站 2022-07-02 22:55:38
while、for 、if、else、break、continue...

Python自学20201202 while、for 、if、else、break、continue等相关用法。常用常玩,来来回回一直循环,
学这个要点,把自己当机器,跟着循环。

print("=========表达式语句学习=============")
print("=========1、常用表达式语句=============")
"""
spam(eggs,ham)      函数调用
spam.ham(eggs)      方法调用
print(a,b,c,seq='')  打印操作3.0+
yield x**2           产生表达式的语句
"""
x= print('spam')
#打印结果 spam
print(x)
#打印结果 None
print("=========2、常用表达式语句和在原处的修改=============")
L=[2,3]
L.append(4)  #append sort reverse 这类在原处的修改运算,一定只对列表做原处修改
print(L)

L=[2,3]
L=L.append(4)
print(L)

"""
sep是在每个对象的文本之间插入的一个字符串,如果没有传递的话,它默认地是一个单个的空格;传递一个空字符串将会抑制分隔符。

end是添加在打印文本末尾的一个字符串,如果没有传递的话,它默认的是一个\n换行字符。传递一个空字符串将会避免在打印的文本的末尾移动到下一个输入
行—下一个print将会保持添加到当前输出行的末尾。

file指定了文本将要发送到的文件、标准流或者其他类似文件的对象;如果没有传递的话,它默认的是sys. stdout。带有一个类似文件的 write(string)方法的任何
对象都可以传递,但真正的文件应该已经为了输出而打开。
"""
print("=========3、python 3.+应用=============")
x = 'spam'
y = 99
z = ['eggs']
print('1:',x,y,z)
print('2:',x,y,z,sep='')
print('3:',x,y,z,sep=',')
print('4',x,y,z,end='...\n')
print('5:',x,y,z,sep='...',end='!\n')
print('6:',x,y,z,end='!\n',sep='...')

print('7:',x,y,z,sep='...',file=open('data.txt','w'))
print('7:',x,y,z)
print('8:',open('data.txt').read())

text = '%s:%-.4f,%05d'%('Result',3.14159,42)
print('text:',text)

x='spam'
if 'rubbery' in 'shrubbery':
    print(x*8)
    x +='NI'
    if x.endswith('NI'):
        x *=2
        print(x)


print("=========4、while函数=============")
"""
while语句,提供了编写通用循环的一种方法;而第二种是for语句,用它来遍历序列对象内的元素,并对每个元素运行一个代码块。
"""

#轰炸机。。。。可以点下面红色方块停止。
# while True:
#     print('Type Ctrl-C to stop me')

x = 'spam'
while x:    # while x is not empty
    print(x,end=' ')
    x=x[1:]

print("\n=========5、while函数例2=============")
a=0
b=10
while a<b:
    print(a,end=' ')
    a +=1

print("\n=========5、break continue pass用法=============")
"""
 break   跳出最近所在的循环(跳过整个循环语句)。
 continue 跳到最近所在循环的开头处(来到循环的首行)。
 pass   什么事也不做,只是空占位语句。 循环else块,只有当循环正常离开时才会执行(也就是没有碰到 break语句)。
"""
#例子
# while <test1>:
#     <statements1>
#     if <test2>: break
#     if<test3> : continue
# else:
#     <statements2>


# while True:
#     pass

x = 10
while x:
    x=x-1
    if x % 2 ==0:continue
    print(x,end=' ')

print('\n')

x = 10
while x:
    x=x-1
    if x % 2 ==0:
        print(x,end=' ')

print('\n')

#下面可以直接跑
# while True:
#     name = input('Enter name:')
#     if name == 'stop':
#         break
#     age = input('Enter age:')
#     print('Hello',name,'=>',int(age)**2)

d=99
z = d//2    # //代表整除
while z>1:
    if d%z ==0:
        print(d,'has factor',z)
        break
    z -=1
else:
    print(d,'is prime.')

print("=========6、循环搜索列表的值=============")
#写一个循环搜索列表的值
found = False
while x and not found:
    if match(x[0]):
        print('Ni')
        found = True
    else:
        x=x[1:]
if not found:
    print('not found')

L=[1,2,3,4,5]
i = 0
while i < len(L):
    L[i] +=1
    i +=1
print(L,i)

L1=[1,2,3,4,5]
for j in L1:
    j +=1
print(L1,j)

print("=========7、并行遍历 zip和map=============")
"""
内置函数 range允许我们在for循环中以非完备的方式遍历序列。内置的zip函数也让我们使用for循环来并行使用多个序列。在基本运
算中,zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对。例如,假设我们使用两个列表:
"""
L2 = [1,2,3,4,5]
L3 = [5,6,7,8,9,10]
print(zip(L2,L3))
print(list(zip(L2,L3)))  #并行遍历,如有一方不符合,即不打印出来
for (x,y) in zip(L2,L3):
    print('%d+%d'%(x,y),'=',x+y)

s1='abc'
s2='xyz12'
print(list(zip(s1,s2)))

print("=========8、产生偏移和元素enumerate=============")
#这个还需深入研究
S= 'spam'
E= enumerate(S)
print(E)
print(next(E))
print(next(E))
print(next(E))
print(next(E))

"""
习题和总结:
1. While和for之间的主要功能区别是什么?
2. break,continue和pass之间有何区别?
3.一个循环的else分句何时执行?
4.在 Python中怎样编写一个基于计数器的循环?
5.怎样使range用于for循环中?
"""

"""
1. while循环是一条通用的循环语句,for循环设计用来在一个序列中遍历各项(序列需要是真正可迭代的)。尽管 while可以用计数器循环来模拟for循环,但它需要更
多的代码并且可能运行起来更慢些。
2. break语句立即退出一个循环(省略了下面的整个 while或for循环语句), continue跳回到循环的顶部(跳转到 while中测试之前的部分或for中的下一次元
素获取)。
3. while或for循环中的else分句会在循环离开时执行一次,但前提是循环是正常离开(没有运行break语句)。如果有的话,break会立刻离开循环,跳过else部分。
4.计数器循环可以使用while语句编写,并手动记录索引值,或者以for循环写成,使用 range内置函数来产生连续的整数偏移值。任何一种都不是 Python中的推荐的
做法,如果你只需要遍历序列中所有元素只要可能就改用简单的for循环,不用range或计数器。这样做不仅更容易编写,而且通常运行得更快。
5. range内置函数可以用在一个for循环中来实现固定次数的重复,以按照偏移值而不是偏移值处的元素来扫描,从而,在过程中省略连续的元素,并且在遍历一个列
表的时候修改它。这样的用法并非都需要range,大多数有其他的替代方法—如今,扫描实际的元素、三重限制分片,以及列表解析往往是较好的解决方案。
"""

本文地址:https://blog.csdn.net/hahahehe2020/article/details/110458245