1.13 python--for循环,while循环

1.for循环

1)range的用法

range(stop)
range(start,stop)
range(start,stop,step)
默认start为0,step为1

实验

>>> range(5)
[0, 1, 2, 3, 4]
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,11)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(1,11,2)   ##奇数
[1, 3, 5, 7, 9]
>>> range(0,11,2)   ##偶数
[0, 2, 4, 6, 8, 10]
>>>

2)for的使用

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

练习1:求1~100所有偶数之和

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

练习2:求1~100所有奇数之和

# sum1 = 0
# for i in range(1,101,2):
#     sum1 += i
# print(sum1)

练习3:求阶乘

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

3)continue,break,exit()

continue    ##跳出本次循环
break        ##跳出大循环
exit()        ##退出程序

实验

for i in range(10):
    if i == 5:
        # continue
        # break
        exit()
    print(i)

print('hello python')

4)for循环的嵌套

练习1:有1,2,3,4四个数字,求这四个数字能生成多少个互不相同且无重复数字的三位数

num = 0                         
for i in range(1, 5):           
    for j in range(1, 5):       
        for k in range(1, 5):   
            if i != j and j != k
                print('%d%d%d' %
                num += 1        
print('一共有%d个不相同的数字' % (num))   

练习2:判断用户是否登陆成功

用户登陆需求:
    1.输入用户名和密码;
        2.判断用户名和密码是否正确(name='root',passwd='westos')
        3.登录仅有三次机会,超过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('登录次数超过三次,请稍后登录')


练习3:模拟一个控制台,实现命令行提示符

import os
for i in range(1000):
    cmd = input('[kiosk@test ~]$ ')
    if cmd:
        if cmd == 'exit':
            break
        else:
            print('run %s' %(cmd))
            os.system(cmd)
    else:
        continue

练习4:输入两个数值:

    求两个数的最大公约数和最小公倍数
    最小公倍数=(num1 * num2) / 最大公约数

#1.输入两个数字
num1 = int(input('Num1:'))
num2 = int(input('Num2:'))

#2.找出两个数中的最小值
min_num = min(num1,num2)

#3.最大公约数的范围在1~min_num之间
for i in range(1,min_num + 1):
    if num1 % i == 0 and num2 % i == 0:
        gys = i

#4.最小公倍数
gbs = int((num1 * num2) / gys)

print('%s和%s的最大公约数为:%s' %(num1,num2,gys))
print('%s和%s的最小公倍数为:%s' %(num1,num2,gbs))

 

2.while 循环

1)普通的while

while 条件():
    条件满足时,做的事情1
    条件满足时,做的事情2
    .....

测试

#1.定义一个整数变量,记录循环的次数
i = 1
#2.开始循环
while i <= 3:
    #希望循环内执行的代码
    print('hello python')
    #处理计数器
    i += 1

练习:输出1-100的奇数和 和 偶数和

i = 1
sum = 0
while i <= 100:
    sum += i
    i += 2
print('0-100的奇数和为%d' % (sum))
print(sum)

i = 2
sum = 0
while i <= 100:
    sum += i
    i += 2
print('0-100的偶数和为%d' % (sum))
print(sum  )

练习2:判断用户是否登陆成功

用户登陆需求:
    1.输入用户名和密码;
        2.判断用户名和密码是否正确(name='root',passwd='westos')
        3.登录仅有三次机会,超过3次会报错
trycount = 0

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

2)死循环

#定义死循环
while True:
    print('hello python')

3)while的嵌套

输出不换行
print('i',end='')

练习:输出各种星星

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

实验结果

*
**
***
****
*****


i = 5
while i > 0:
    j = i
    while j > 0:
        print('*', end='')
        j -= 1
    print()
    i -= 1

实验结果

*****
****
***
**
*

i = 1
while i <= 5:
    j = 1
    while j <= 5:
        l = 5 - i
        if j <= l:
            print(' ', end='')
        else:
            print('*', end='')
        j += 1
    print()
    i += 1

实验结果

    *
   **
  ***
 ****
*****

i = 5
while i >= 0:
    j = 1
    while j <= 5:
        l = 5 - i
        if j <= l:
            print(' ', end='')
        else:
            print('*', end='')
        j += 1
    print()
    i -= 1

实验结果

*****
 ****
  ***
   **
    *

练习2:99乘法表

i=1
while i<=9:
    j=1
    while j<=i:
        print('%dx%d=%d   ' %(i,j,i*j),end='')
        j +=1
    print()
    i+=1

1x1=1   
2x1=2   2x2=4   
3x1=3   3x2=6   3x3=9   
4x1=4   4x2=8   4x3=12   4x4=16   
5x1=5   5x2=10   5x3=15   5x4=20   5x5=25   
6x1=6   6x2=12   6x3=18   6x4=24   6x5=30   6x6=36   
7x1=7   7x2=14   7x3=21   7x4=28   7x5=35   7x6=42   7x7=49   
8x1=8   8x2=16   8x3=24   8x4=32   8x5=40   8x6=48   8x7=56   8x8=64   
9x1=9   9x2=18   9x3=27   9x4=36   9x5=45   9x6=54   9x7=63   9x8=72   9x9=81

综合练习:猜测中奖

猜数字游戏:
    1.系统随机生成一个1~100的数字;
    2.用户共有5次机会猜;
    3.如果用户猜测数字大于系统给出的数字,打印"too big"
    4.如果用户猜测数字小于系统给出的数字,打印"too small"
    5.如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖",
    并退出循环
"""

import random
randomnum = random.randint(1, 100)
for i in range(5):
    usernum = int(input('请输入数字:'))
    if usernum == randomnum:
        print('恭喜中奖')
        break
    elif usernum > randomnum:
        print('too big')
    else:
        print('too small')
    chance= 5-i-1
    if chance != 0:
        print('你还剩下%d次机会' % (chance))
    else:
        print('你没有中奖')

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值