python--while--for-break-continue--猜数字游戏--打印9*9乘法表--1~100之间数之和--阶乘--用户登录--最大公约数和最小公倍数

while的语法

while 条件():

  条件满足时,做的事情1

  条件满足时,做的事情2

     ......

示例一

hello python打印三次

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

示例二:定义一个死循环
 

while True:
    print 'hello python'

python中的计数方法

常见的计数方法有两种,可以分为

自然计数法(从1开始) -- 更符合人类的习惯

程序计数法(从0开始) -- 几乎所有的程序语言都选择从0开始计数

因此,大家在编写程序时,应该尽量养成习惯:除非需求的特殊要求,否则循环的计数从0开始

循环计算

在程序开发中,通常会遇到利用循环重复计算的需求(利用CPU的强大之处 完成相应的复杂计算)

遇到这种情况:

1.在while上方定义一个变量,用于存放最终的计算结果

2.在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量

示例三:计算:0~100之间所有数字的累积求和

i=0
result=0
while i<=100:
    result+=i
    i+=1
print '0~100之间的数字求和结果为:%d' %result

示例四:计算:0~100之间所有偶数的累积求和

i = 0
result = 0
while i <= 100:
    if i % 2 == 0:
        print i
        result += i
    i += 1
print '0~100之间的偶数求和结果为:%d' % result

while嵌套示例五:

按照格式打印

* * 

* * * 

* * * * 

* * * * * 

row = 1
while row <= 5:
    # 每一行要打印的星星就是和当前行数是一致的
    # 增加循环,专门负责当前的行中,每一列的星星显示
    # 1.定义一个列计数器
    col = 1
    # 2.开始循环
    while col <= row:
        #print '%d' % col
        # 不换行输出
        print '*',
        col += 1
        # print '*'
        # print '第 %d 行' % row
        # 这行代码的目的,就是在一行小星星输出完成后,添加换行
    print ''
    row += 1

练习题一:猜数字游戏

 1. 系统随机生成一个1~100的数字;

 2. 用户总共有5次猜数字的机会;

 3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;

 4. 如果用户猜测的数字小于系统给出的数字,打印"too small";

 5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜",并且退出循环;

import random
Sys_Num = random.randint(1, 100)
print Sys_Num
i = 5
while i > 0:
    Use_Num = int(raw_input('请用户输入猜测的数字:'))
    i -= 1
    if (Use_Num > Sys_Num):
        print 'too big'
    elif (Use_Num < Sys_Num):
        print 'too small'
    elif (Use_Num == Sys_Num):
        print '恭喜你猜对了'
        break

练习题二:打印9*9

\t输出时制表
row = 1
while row <= 9:
    col = 1
    while col <= row:
        col += 1
        Value = row * col
        print '%d*%d=%d\t' % (row, col, Value),
    print ''
    row += 1

练习题:三实现命令行提示符雏形

import os
while True:
    cmd = raw_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'

break continue

break: 某一条件满足的时候,退出循环,不再执行后续重复的代码

在循环体内部,我们可以增加额外的条件,在需要的时候,跳出整个循环

continue:某一条件满足的时候,不执行后续重复的代码,其他条件都要执行

i = 0
while i <10:
    if i == 3:
        break
    print i
    i +=1
print 'over' 

i = 0

# continue:继续,持续:让我们的代码遇到continue关键字的时候

# 继续到 循环的那一条语句中去

while i < 10:
    i +=1
    if i == 3:
       continue
    #i += 1
    print i

for语法

for 循环使用的语法

    for 变量 in range(10):

        循环需要执行的代码

示例一:ipython

In [1]: range(5)

Out[1]: [0, 1, 2, 3, 4]

In [2]: range(7)

Out[2]: [0, 1, 2, 3, 4, 5, 6]

In [3]: range(1,10)

Out[3]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

 

示例二:步长

# 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.用户输入一个整型数,求该数的阶乘

# 3 = 3*2*1
num = int(raw_input('Num:'))
res = 1
for i in range(1,num+1): # num:3 rang(1,4)== 1,2,3
    res = res * i
print '%d 的结果是:%d' %(num,res)

range(start,stop):start-stop 1

range(start,stop,step): start~stop step(步长)

For练习题一:

用户登录程序需求:

1. 输入用户名和密码;

2. 判断用户名和密码是否正确? (name='root', passwd='westos')

3. 为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会, 报错提示;

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

For练习题二:

输入两个数值:

求两个数的最大公约数和最小公倍数.

最小公倍数=(num1*num2)/最大公约数

num1 = int(raw_input('Num1:'))
num2 = int(raw_input('Num2:'))
min_num = min(num1, num2)
for i in range(1, min_num + 1):
    if num1 % i == 0 and num2 % i == 0:
        # 当循环结束,保存最大公约数
        gys = i
lcm = (num1 * num2)/gys
print '%s和%s的最大公约数为%s' %(num1,num2,gys)
print '%s和%s的最小公倍数为%s' %(num1,num2,lcm)

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值