作业 —— day08

一:for循环

1.for循环嵌套之打印99乘法表

①矩形输出九九乘法表:

for i in range(1,10):
    for j in range(1,10):
        if i <= 9:
            print(f"{j}×{i} = {i * j}", end="\t")
    print("")

②左下三角形式九九乘法表:

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}×{i}={i*j}",end="\t")
    print(" ")

③左上三角形式九九乘法表:

PS:乘法算式按行输出,与完整格式相比,内层循环范围为i~9,当外层循环的i逐渐递增时,每行输出的算式个数会越来越少,print(" ")表示换行,不输出这句的话输出的乘法表格式错乱。

for i in range(1,10):
    for j in range(i,10):
        print(f"{i}×{j} = {i * j}", end="\t")
    print(" ")

④右下三角形式九九乘法表:

for i in range(1,10):
    for k in range(1,10-i):
        print(end="        ") #此处七个空格
    for j in range(1,i+1):

        print("%d×%d=%2d" % (i, j, i*j), end=" ") #切记此处不能用格式化输出.format方式或者f"{}", 要用格式化输出只能pycharm中才会显示下面的样式。
    print(" ")

⑤右上三角形式输出九九乘法表:

注:相比左上三角形,内层循环语句多了两句,由于每个算式所占的位置为7个字节,所以多余前面空出的地方输出相应的空格数,

在Python中不能直接写print(" ")语句表示输出空格,必须添加end关键字,表示结尾以等号右边的内容输出,与后面的右上和左上的差别相似。

for i in range(1,10):
    for k in range(1,i):
        print(end="        ")  #此处8个空格
    for j in range(i,10):
        print("%d×%d=%2d" % (i, j, i * j), end=" ")#切记此处不能用格式化输出.format方式或者f"{}", 要用格式化输出只能pycharm中才会显示下面的样式。
    print(" ")

⑥正金字塔形式输出九九乘法表:

for i in range(1,10):
    for k in range(1,10-i):
        print(end="        ")#此处为8个字节
    for j in range(1,i+1):
        print(f"{j}×{i} = {i * j}", end="        ")#此处为8个字节
    print(" ")

⑦倒立的金字塔形式输出九九乘法表:

for i in range(1,10):
    for k in range(1,i):
        print(end="        ")#此处8个空格
    for j in range(i,10):
        print(f"{j}×{i} = {i * j}", end="        ")#此处8个空格
    print(" ")
print("\n")

2.for循环嵌套之打印金字塔

①低配版金字塔

height = int(input("请输入行数:\n"))
for i in range(height):
    for j in range(i+1):
        print("* ", end='')
    print("\n")

②低配版倒金字塔

height = int(input("请输入行数:\n"))
for i in range(height):
    print((height-i)*'*')

③高配版金字塔

def pyramid(n):
    for i in range(1, n):
        print(' ' * (n - (i - 1)) + '*' * (2 * i - 1))
pyramid(5)

④高配版倒金字塔

def reverse_pyramid(n):
    for i in range(n):
        print(' ' * i + (n - 2 * i) * '*')
reverse_pyramid(5)

3.用for+range改写今日早晨默写的代码,作为明天默写内容

username = 'xxq'
password = '123'
for i in range(3):
    inp_name=input('请输入您的账号:')
    inp_pwd=input('请输入您的密码:')

    if inp_name  == username and inp_pwd == password:
        print('登录成功')
        while True:
            cmd=input("输入命令>: ")
            if cmd == 'q': # 整个程序结束,退出所有while循环
                break
            else:
                print('命令{x}正在运行'.format(x=cmd))
        break
    else:
        print('账号名或密码错误,请重试')
else:
    print('输错3次,退出程序!')

二:字符串操作

写代码,有如下变量,请按照要求实现每个功能 (共6分,每小题各0.5分)

name = " aleX"

1.移除 name 变量对应的值两边的空格,并输出处理结果

name = " aleX"
res=name.strip()
print(res)

aleX

2.判断 name 变量对应的值是否以 "al" 开头,并输出结果

name = " aleX"
print(name.startswith('al'))

False

3.判断 name 变量对应的值是否以 "X" 结尾,并输出结果

name = " aleX"
print(name.endswith('X'))

True

4.将 name 变量对应的值中的 “l” 替换为 “p”,并输出结果

name = " aleX"
print(name.replace("l","p",))

apeX

5.将 name 变量对应的值根据 “l” 分割,并输出结果。

name = " aleX"
res=name.split('l')
print(res)

[' a', 'eX']

6.将 name 变量对应的值变大写,并输出结果

name = " aleX"
print(name.upper())

ALEX

7.将 name 变量对应的值变小写,并输出结果

name = " aleX"
print(name.lower())

alex

8.请输出 name 变量对应的值的第 2 个字符

方法1:索引取值

name = " aleX"
print(name[1])	# 按索引取值

a

方法2:切片

name = " aleX"
print(name[1:2])	# 切片取值,起始索引下标1(第2个字符),终止索引下标2(取不到2,所以还是1)

a

9.请输出 name 变量对应的值的前 3 个字符

方法1:索引取值

name = " aleX"
print(name[0],name[1],name[2])	# 按索引取值

  a l

方法2:切片取值

name = " aleX"
res=name[0:3]	# 切片取值,起始索引下标0(第1个字符),终止索引下标3(取不到3,所以还是2)
print(res)

 al

10.请输出 name 变量对应的值的后 2 个字符

方法1:索引取值

name = " aleX"
print(name[-2],name[-1])

e X

方法2:切片取值

name = " aleX"
res=name[3:5]	# 切片取值,起始索引下标3(第4个字符),终止索引下标5(取不到5,所以还是4)
print(res)

eX

方法3:反向切片取值

name = " aleX"
res=name[4:2:-1]	# 反向切片取值,起始索引下标4(第5个字符),终止索引下标2(取不到2,所以还是3)
print(res)

Xe

11.请输出 name 变量对应的值中 “e” 所在索引位置

方法1:find

name = " aleX"
print(name.find('e')) 

3

方法2:index

name = " aleX"
print(name.index('e'))

3

12.获取子序列,去掉最后一个字符。如: oldboy 则获取 oldbo

name = " aleX"
res = name[0:-1]
print(res)

 ale
posted @ 2020-03-10 17:02  轻描丨淡写  阅读(293)  评论(0编辑  收藏  举报