python中的循环语句

问题:1+2+3+...100=

           在c/java中:

                sum = 0 ;
                for(int i =1;i < 100;i++):
	               sum += i;

           在python中:

                    sum = 0
                    for i in range(1,101):
	                    sum = sum + 1
                    print(sum)

python中使用range( )函数作为循环数组

range函数

range(stop):0 ~ stop - 1
range(start,stop):start ~ stop - 1
range(start,stop,step):start ~ stop-1,step为步长

例如:

>>> # 拿出1~10之间所有的偶数
... range(2,11,2)
[2, 4, 6, 8, 10]

注:python2与python3中range和xrange的对比

python2:
    - range(5): 即刻生成数据, 消耗时间并占用内存;
    - xrange(5): 先生成一个xrange对象, 使用值时才生成数据, 占用内存;
python3:
    - range(5) 相当与python2里面的xrange;

循环语句中的中断语句:

break: 跳出整个循环, 不会再循环里面的内容;
continue:跳出本次循环, continue后面的代码不再执行, 但是还会继续循环;
exit: 结束程序的运行

例题:

# 倒入os模块,os模块提供了多数操作系统的功能接口函数。
# 当os模块被导入后,它会自适应于不同的操作系统平台,
# 根据不同的平台进行相应的操作,
# 在python编程时,经常和文件、目录打交道,所以离不了os模块。
import os
#for i in range(100):
# 死循环
while True:
	cmd = input("[kiosk@test ]$ ")
	if cmd:
		if cmd == 'exit':
			print('logout')
			break            #跳出循环
			print("hello")   # 不会执行
		else:
			print("run %s" %(cmd))
			# 运行shell命令
			os.system(cmd)
	else:
		continue             #之后命令不会执行,但会继续执行循环语句
		print("hello")       # 不会执行

编译结果如下:  

for循环使用的语法:

1)    for 变量 in range(10):
                             循环需要执行的代码

2)    for 变量 in range(10):
                            循环需要执行的代码
    else:
                            循环执行结束执行的代码

例:

1.用户输入一个整形数, 求该数的阶乘;

num = int(input('Num:'))   # num = 3    1*2*3   3*2*1
res = 1
for i in range(1, num+1): # num:3  range(1, 4) === 1,2,3
	res = res * i
print("%d阶乘的结果为:%d" %(num, res))

编译结果如下:  

2.用户登陆程序需求:
                                       1.输入用户名和密码;
                                       2.判断用户和密码正确?
                                       3.为了防止暴力破解,仅有三次机会,超过三次。报错提示;

for i in range(3):
	name = input("用户名:")
	passwd = input("密码:")
	if name == 'root' and passwd == 'westos':
		print("登陆成功")
		break
	else:
		print("登陆失败")
		print("您还剩余%d次机会" %(2-i))
else:
	print("登陆次数超过三次, 请等待100s后再次登陆")

编译结果如下:

成功登陆

 

登录失败

                                                                                                                                                                                                                                  

while循环

                 while 条件语句:
                                  满足条件执行的语句
                 else:
                                  不满足条件执行的语句

1. 用户输入一个整形数, 求该数的阶乘;

num = int(input('Num : '))
res = 1
i =1
while i < num:
    i += 1
    res *= i
print("res = %d" %(res))

编译结果如下:  

2.把用户登陆的代码for循环部分改写为while循环;

trycount = 0
while trycount < 3:
    name = input("用户名:")
    passwd = input("密码:")
    if name == 'root' and passwd == 'villa':
        print("登陆成功")
        break
    else:
        trycount += 1
        print("登陆失败")
        print("您还剩余%d次机会" % (2 - trycount))
else:
    print("登陆次数超过三次, 请等待100s后再次登陆")

编译结果如下:  

3.猜数字游戏
    使用语法if,while,break

    -1.系统随即生成一个1~100的数字;
        *random模块,随即生成数
    -2.用户一共5次猜数字机会
    -3.如果用户猜测的数字大于系统给出数字,则打印“too big”
    -4.如果用户猜测的数字小于系统给出数字,则打印“too small”    
    -5.如果用户猜测的数字等于系统给出数字,则打印“congratulation”,并退出循环

使用for实现:

import random

num = random.randint(1,100)

print(num)
for i in range(1,6):
        guess = int(input("plese guess:"))
        if guess > num :
                print("too big")
        elif guess < num :
                print("too small")
        else :
                print("congratulation!!!")
                exit()
else:
        print("game over")

编译结果如下:

使用while实现:

import random

x = random.randint(1, 100)
print(x)
trycount = 0
while trycount < 5:
    tk = int(input("plese guess:"))
    if tk == x:
        print("congratulation!!!")
        break
    elif tk < x:
        print("too small")
        trycount += 1
    else:
        print("too big")
        trycount += 1
else:
    print("game over")

编译结果如下: 

如果条件设置为 True 并且没有退出的条件,程序便会陷入死循环

死循环猜数字练习:

import random

x = random.randint(1, 100)
trycount = 0
while True:
    guess = int(input("plese guess:"))
    if guess == x:
        print("congratulation!!!")
        break
    elif guess < x:
        print("too small")
        trycount += 1
    else:
        print("too big")
        trycount += 1

编译结果如下:

猜你喜欢

转载自blog.csdn.net/weixin_41179709/article/details/81586367