一: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