Python之循环语句和字符串

# 1+2+3+...100=

"""
# C语言或者Java;
sum = 0
for(int i=1; i<100; i++):
    sum = sum + i
0+1+2+3+...100

# python


>>> range(5)
[0, 1, 2, 3, 4]
>>> range(7)
[0, 1, 2, 3, 4, 5, 6]


>>> help(range)

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

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

# for循环使用的语法:
    for 变量 in range(10):
        循环需要执行的代码

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


"""

sum = 0
for i in range(1,101):   # i=1,2,3....100
    sum = sum + i

print(sum)


# 需求1: 求1~100之间所有偶数的和;


# 需求2: 求1~100之间所有奇数的和;


# 需求3: 用户输入一个整形数, 求该数的阶乘; 3!=3*2*1=6

"""
用户登陆程序需求:
    1. 输入用户名和密码;
    2. 判断用户名和密码是否正确? (name='root', passwd='westos')
    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后再次登陆")

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


"""

# 0,1,2,3,4....9
for i in range(10):
    if i == 5:
        break
    print(i)

# 0,1,2,3,4....9
for i in range(10):
    if i == 5:
        continue
    print(i)

# 倒入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")       # 不会执行的

"""
输入两个数值:
    求两个数的最大公约数和最小公倍数.

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

# 2,3
# 2,6

# 1. 输入两个数值: input接收的是字符串类型
num1 = int(input('Num1:'))
num2 = int(input('Num2:'))
# 2. 找出两个数中的最小值
# min_num = min(num1, num2)
min_num = num1 if num1<num2 else num2
# 3. 最大公约数的范围在1~min_num之间;最大公约数就是num1和num2能整除的最大的数;
for i in range(1,min_num+1):  # 1, 2
    # 2%1==0 ; 3%1==0   gys=1
    # 2%2==0   6%2!=0    gys=2
    if num1 % i == 0 and num2 % i == 0:
        # 当循环结束, gys中保存的是最大的约数;
        gys = i
# 4. 最小公倍数
lcm = int((num1*num2)/gys)

print("%s和%s的最大公约数为%s" %(num1, num2, gys))
print("%s和%s的最小公倍数为%s" %(num1, num2, lcm))

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


# python3:
    - range(5) 相当与python2里面的xrange;

"""

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

"""

# 1. 1+2+3+.....+100

# i+=1  i=i+1
sum = 0
i = 1
while  i <=100:
    sum += i
    i += 1
print(sum)

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

"""
# 猜数字游戏                                                                                               
     if , while, break
     1. 系统随机生成一个1~100的数字;
     ** 如何随机生成整型数, 导入模块random, 执行random.randint(1,100);
     2. 用户总共有5次猜数字的机会;
     3. 如果用户猜测的数字大于系统给出的数字,打印“too big”;
     4. 如果用户猜测的数字小于系统给出的数字,打印"too small";
     5. 如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖100万",并且退出循环;

# 方法1:
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")
"""

# 方法2:


import random
x = random.randint(1,100)
print(x)
trycount = 0
while trycount < 5:
        tk = int(input("你猜:"))
        if tk == x:
                print("恭喜中奖100万")
                break
        elif tk < x:
                print("too small")
                trycount += 1
        else:
                print("too big")
                trycount += 1
else:
        print("没有机会")

猜你喜欢

转载自blog.csdn.net/dzh1125641239/article/details/81587566