# 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("没有机会")