python学习6

循环:

循环基本每个编程语言都有,而且很常用,用法也大同小异

for循环:

在前面的小练习里,我提前使用了for循环语句,不然写四个pop语句也太麻烦,虽然可以复制粘贴,但也不美观不是?先举个例子

>>> for name in ['jack','Tom','ho']:
	print (name)

	
jack
Tom
ho
>>> for i in range(10):
	print (i)

	
0
1
2
3
4
5
6
7
8
9
>>> 

第一个例子是依次从列表里读取出元素赋值给‘name’,赋值一次输出一次。第二个例子,顺便提下range函数,python2和python3中的range函数的返回值是不一样的,python2返回的是一个列表,而python3中返回的是迭代对象,是一个对象,虽然在for循环中他的输出的是一样的



如果需要python3中返回一个列表,就用list函数,list(range(10))。range的真正用法,range(start, stop[, step]),range(10)就是默认了start为0,step为1,如果range(2,10,2),输出为

>>> list(range(2,10,2))
[2, 4, 6, 8]

range大概就说到这里了,回到前面,第二个例子就是将range的返回值赋值给i,然后打印出来,从0开始

fort循环里当然不可能只有一条语句,也不是只能用Print语句,想包含多少语句都可以

for循环里的语句开头都是有缩进的,这就是区别于不在循环里的语句,而且缩进的格楼都是固定的,如果缩进的空格不对会提示错误,如果没有缩进,可能不会出错,但输出结果就不会如你意了。在循环语句都写完后,下面的语句就需要顶格写了,不能缩进了,这样也使程序美观些

另外,冒号千万不要忘记

小练习:

想出至少三种你喜欢的比萨,将其名称存储在一个列表中,再使用for循环将每种比萨的名称都打印出来。
 修改这个for 循环,使其打印包含比萨名称的句子,而不仅仅是比萨的名称。对于每种比萨,都显示一行输出,如“I like pepperoni pizza”。

 在程序末尾添加一行代码,它不在for 循环中,指出你有多喜欢比萨。输出应包含针对每种比萨的消息,还有一个总结性句子,如“I really love pizza!”

pizza=['pizza1','pizza2','pizza3']
for name in pizza:
    print (name,end='   ')
    print('I like '+name)
print(pizza[0]+' good')
print(pizza[1]+' good')
print(pizza[2]+' good')
print("I really love pizza")

while循环:

while语句是在判断条件成立的时候一直循环下去,直到条件不成立。

>>> m=10                                     #初始一个变量m为10
>>> while m<20:                              #当m小于20时,一直执行下面的语句
	print(m,end=' ')                     #输出m,end=是print函数的参数,如果省略就是换行,这里是空格
	m+=1                                 #m值加1,直到m=20,停止循环

	
10 11 12 13 14 15 16 17 18 19 
>>> 
中途退出循环,可以使用break语句,在for循环里也可以使用,当在循环里执行到break语句时,立即跳出循环。
>>> while True:                                      #理论上,这个循环是一直执行的,因为判断条件一直为True
	num=int(input("输入数字:"))
	if num==20:
		print("good")
		break                                #当输入的数字为20时,if语句成立,执行break,跳出循环

	
输入数字:15
输入数字:23
输入数字:19
输入数字:20
good
>>> 

break是直接退出循环,而continue是继续执行循环而忽略下面的代码

>>> num=0
>>> while num<10:
	num+=1
	if num%2!=0:
		continue                      #当不为偶数时执行循环而不执行下面的print
	print(num)

	
2
4
6
8
10
>>> 

如果你不小心编出个无限循环,也不要慌,按ctrl-c就可以停止运行程序了

之前用for循环可以遍历列表,用while也可以对列表进行操作,比如像while 列表,列表为空时停止循环,while 元素 in 列表,当特定的元素在列表里时,一直循环。

小练习:

'''
编写一个循环,提示用户输入一系列的比萨配料,并在用户输入
'quit'时结束循环。每当用户输入一种配料后,都打印一条消息,说我们会在比萨中添
加这种配料。
'''
print('输入你要的配料,完成输入quit')
while True:
    pl=input("配料:")
    if pl=="quit":
        print("谢谢使用")
        break
    print("你点的配料是: "+pl)
'''
创建一个名为sandwich_orders 的列表,在其中包含各种三明治的名
字;再创建一个名为finished_sandwiches 的空列表。遍历列表sandwich_orders,对于
其中的每种三明治,都打印一条消息,如I made your tuna sandwich,并将其移到列表
finished_sandwiches。所有三明治都制作好后,打印一条消息,将这些三明治列出来
'''
sandwich_orders=['a1','c3','d4','b2','e5']
finished_sandwiches=[]
while sandwich_orders:
    flag=sandwich_orders.pop()
    print("I made your tuna sandwich "+flag)
    finished_sandwiches.append(flag)
print(finished_sandwiches[::-1])                      #倒叙输出新列表
'''
使用为完成练习7-8 而创建的列表
sandwich_orders,并确保'pastrami'在其中至少出现了三次。在程序开头附近添加这样
的代码:打印一条消息,指出熟食店的五香烟熏牛肉卖完了;再使用一个while 循环将
列表sandwich_orders 中的'pastrami'都删除。确认最终的列表finished_sandwiches 中
不包含'pastrami'。'''
sandwich_orders=['a1','c3','d4','b2','d4','e5','d4',]
finished_sandwiches=[]
while 'd4' in sandwich_orders:
    sandwich_orders.remove('d4')
print("d4已无")
while   sandwich_orders:
    flag=sandwich_orders.pop()
    print("I made your tuna sandwich "+flag)
    finished_sandwiches.append(flag)
print(finished_sandwiches[::-1])
'''
编写一个程序,调查用户梦想的度假胜地。使用类似于“If
you could visit one place in the world, where would you go?”的提示,并编写一个打印调
查结果的代码块。
'''
questions={}
while True:
    flag=input("有人回答问题?yes or no   ")
    if flag=='no':
        print('88')
        break
    elif flag!='no'and flag!='yes':
        print('yes or no!!!!!!!!!!!!!')
        continue
    name=input("Your name    ")
    answer=input("If you could visit one place in the world, where would you go?      ")
    questions[name.title()]=answer
    print("Thanks       ",name.title())

for name, answer in questions.items():
    print(name+ " would like to climb " +answer+ ".")




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值