循环语句及字符串的特性与应用

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))

 

 


 

    

猜你喜欢

转载自blog.csdn.net/weixin_42719822/article/details/81586594