1.循环语句
c语言:
sum = 0
for(int i=1; i<100; i++):
sum = sum + i
0+1+2+3+...100 此算法求的是1加到100的总和
python:
sum = 0
for i in range(1,101): # i=1,2,3....100
sum = sum + i
print(sum) python求前100的和
range(a,b,c) 解释:从a开始到b-1 之间间隔为c
例: >>> range(1,10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1,10,2)
[1, 3, 5, 7, 9]
>>> range(7)
[0, 1, 2, 3, 4, 5, 6]
循环语句的应用:
(1)用户登录系统
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:跳出整个循环,不会执行循环里的内容
comtinue:跳出本次循环,continue后面的代码不在=再执行,但还会继续循环
exit:结束程序的运行
示例如下:
# 0,1,2,3,4....9
for i in range(10):
if i == 5:
# break
continue
print(i)
这时打印出的数字为0,1,2,3,4,6,7,8,9
用户登录
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后再次登陆")
输入两个数值:
求两个数的最大公约数和最小公倍数.
最小公倍数=(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))
2.字符串的特性
>>> s = "hello"
# 正向索引
>>> s[1]
'e'
>>> s[0]
'h'
>>> s[4]
'o'
# 反向索引
>>> s = "hello world"
>>> s[-1]
'd'
>>> s[-2]
'l'
>>> s[-3]
'r'
# 切片
s[start:end:step] # 从start开始到end-1结束, 步长为step;
- 如果start省略, 则从头开始切片;
- 如果end省略, 一直切片到字符串最后;
s[1:]
s[:-1]
s[::-1] # 对于字符串进行反转
s[:] # 对于字符串拷贝
>>> s = "hello"
# 正向索引
>>> s[1]
'e'
>>> s[0]
'h'
>>> s[4]
'o'
# 反向索引
>>> s = "hello world"
>>> s[-1]
'd'
>>> s[-2]
'l'
>>> s[-3]
'r'
字符串的连接
>>> a = "hello"
>>> b = "python"
>>> print("%s %s" %(a, b))
hello python
>>> a + b
'hellopython'
>>> a + " " +b
'hello python'
字符串的分离与拼凑
split:分离
join:拼凑
>>> ip = "172.25.254.19"
>>> ip1 = "1172.25.254.19"
>>> help(ip1.split)
>>> ip1.split('.')
['1172', '25', '254', '19']
>>> date = "2018-2-30"
>>> date.split("-")
['2018', '2', '30']
>>> date.replace('-', '/')
'2018/2/30'
>>> ip = ['1172', '25', '254', '19']
>>> "".join(ip)
'11722525419'
>>> ":".join(ip)
'1172:25:254:19'
>>> "*".join(ip)
'1172*25*254*19'
"""
python的内置函数
>> min(2,4) 最小值
>>> max(2,5) 最大值
5
>>> sum(range(1,101)) 前100的和
5050
>>> sum(range(2,101,2)) 前100的偶数和
2550
>>> sum(range(1,101,2)) 前100的奇数和
2500
# 枚举: 返回索引值和对应的value值;
>>> for i,v in enumerate('hello'):
... print(str(i) +" -----> " + v)
...
0 -----> h
1 -----> e
2 -----> l
3 -----> l
4 -----> o
# zip
>>> s1 = 'abc'
>>> s2 = "123"
>>> for i in zip(s1,s2):
... print(i)
...
('a', '1')
('b', '2')
('c', '3')
>>> for i in zip(s1,s2):
... print("".join(i))
...
a1
b2
c3
>>> for i in zip(s1,s2):
... print("-".join(i))