脚本练习

#!/usr/bin/env /usr/bin/python3
# -*- coding:utf-8 -*-

# 1.冒泡排序
l = [8,3,22,15,17]
for i in range(1,len(l)):
    flag = False
    for j in range(0,len(l)-i):
        if l[j+1] < l[j]:
            l[j],l[j+1] = l[j+1],l[j]
            flag = True
    if not flag:
        break
print(l)

# 2.乘法表及对齐
for i in range(1,10):
    line = ""
    for j in range(1,i+1):
        proc = i * j
        if j == 1:
            line += "{}*{}={} ".format(j,i,proc)
        else:
            line += "{}*{}={:<2} ".format(j,i,proc)
    print(line)

for i in range(1,10):
    for j in range(1,i+1):
        proc = i * j
        if j ==1 or proc >10:
           proc = str(proc)
        else:
           proc = str(proc) + ' '
        print("%d*%d=%s"%(j,i,proc),end=" ")
    print()

# 3.乘法表反写
for i in range(1,10):
    for j in range(1,10):
        if j < i:
            print(" "*7,end="")
        else:
            proc = i * j
            print("{}*{}={:<2}".format(i,j,proc),end=" ")
    print()
# -*- coding:utf-8 -*-

# 4.1-n阶乘的和
n = 5
sum = 0
b = 1
for i in range(1,n+1):
    b *= i
    sum += b
print(sum)

# 5.打印菱形
for i in range(-3,4):
    space = abs(i)
    print(' '*space + "*"*(7-space*2) + " "*space)

# 5.小于100的斐波那契数列
a = 1
b = 1
while a < 100:
    print(a)
    a,b = b,a+b

# 6.斐波那契数列的第101项
a = 1
b = 1
count = 0
while True:
     count += 1
     if count == 101:
         print(a)
         break
     a,b = b,a+b

# 7.列表["flower","flight","flow"],找出公共字符串最长匹配
l = ["flower","flight","flow"]

# 方法一:
def func():
    n = min([len(x) for x in l])
    s = ''
    for index in range(n):
        for i in range(len(l)-1):
            if l[i][index] != l[i+1][index]:
                return s
        else:
            s += l[i][index]
print(func())

# 方法二:
def func():
    s = ''
    for each in zip(*l):
        if len(set(each)) == 1:
            s += each[0]
    return s
print(func())

# 方法三:
def func():
    prefix = ''
    first = l[0]
    others = l[1:]
    for i in first:
        prefix += i
        for j in others:
            if not j.startswith(prefix):
                return prefix[:-1]
print(func())

# 8.字符串assbdjsda去重
s = 'assbdjsda'
new_s = ''
for i in s:
    if i not in new_s:
       new_s += i
print(new_s)

  

上一篇:通过调用cmd.exe 连接磁盘


下一篇:关于subprocess的非阻塞问题的回答