一、公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。
1.按金额循环
g = 5
m = 3
x = 1
for i in range(1, 21):
for j in range(1, 34):
for z in range(1, 101):
if i * g + j * m + z / 3 * x == 100 and i + j + z == 100:
print('{}只公鸡,{}只母鸡,{}只小鸡,一共{}文钱'.format(i, j, z, i * g + j * m + z / 3 * x))
2.按个数循环
for i in range(1, 21):
for j in range(1, 34):
z = 100 - i - j
if i * 5 + j * 3 + z / 3 == 100 and z % 3 == 0:
print('{}只公鸡,{}只母鸡,{}只小鸡,一共{}文钱'.format(i, j, z, i * 5 + j * 3 + z / 3))
二、打印如下图案
# 按#循环
# for j in range(4, -1, -1):
# i = j + 1
# print(i * '#', end='')
# print((5 - i) * 2 * '*', end='')
# print('*')
# 按*循环
for j in range(0,5):
print((5-j)*'#',end='')
print(j*2*'*'+'*')
三、九九乘法表
1.左下角
# 左下三角九九乘法表
for row in range(1,10): #打印行
for col in range(1,row+1): #打印列
print("{0}*{1}={2:2d}".format(row,col,row*col),end=" ")
#这里是用format函数进行格式化输出控制,{2:2d}是给{2}这个位置两倍的空间,对齐乘法表
#同时end是print函数内置方法,设置end=""print就不会进行换行操作
print(" ") #这里是用print的特性,进行换行输出
1*1= 1
2*1= 2 2*2= 4
3*1= 3 3*2= 6 3*3= 9
4*1= 4 4*2= 8 4*3=12 4*4=16
5*1= 5 5*2=10 5*3=15 5*4=20 5*5=25
6*1= 6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1= 7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1= 8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1= 9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
2.左上角
# 左上角九九乘法表
for row1 in range(1,10): #打印行
for col1 in range(row1,10): #打印列
print("{0}*{1}={2:2d}".format(row1,col1,row1*col1),end=" ")
# 这里是用format函数进行格式化输出控制,{2:2d}是给{2}这个位置两倍的空间,对齐乘法表
# 同时end是print函数内置方法,设置end=""print就不会进行换行操作
print(" ")
1*1= 1 1*2= 2 1*3= 3 1*4= 4 1*5= 5 1*6= 6 1*7= 7 1*8= 8 1*9= 9
2*2= 4 2*3= 6 2*4= 8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*3= 9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*6=36 6*7=42 6*8=48 6*9=54
7*7=49 7*8=56 7*9=63
8*8=64 8*9=72
9*9=81
3.右上角
#右上角九九乘法表
for row2 in range(9,0,-1): #打印行,使用了倒序9.8.7.6.....
for block2 in range(9,row2,-1):
print(end=" ")
#上面的这个循环for打印出空格,控制乘法表格式。
# 空格根据9-row2次打印对应空格数
for col2 in range(row2,0,-1): #打印列
print("{0}*{1}={2:2d}".format(row2,col2,row2*col2),end=" ")
# 这里是用format函数进行格式化输出控制,{2:2d}是给{2}这个位置两倍的空间,对齐乘法表
# 同时end是print函数内置方法,设置end=""print就不会进行换行操作
print(" ")
9*9=81 9*8=72 9*7=63 9*6=54 9*5=45 9*4=36 9*3=27 9*2=18 9*1= 9
8*8=64 8*7=56 8*6=48 8*5=40 8*4=32 8*3=24 8*2=16 8*1= 8
7*7=49 7*6=42 7*5=35 7*4=28 7*3=21 7*2=14 7*1= 7
6*6=36 6*5=30 6*4=24 6*3=18 6*2=12 6*1= 6
5*5=25 5*4=20 5*3=15 5*2=10 5*1= 5
4*4=16 4*3=12 4*2= 8 4*1= 4
3*3= 9 3*2= 6 3*1= 3
2*2= 4 2*1= 2
1*1= 1
4.右下角
for row3 in range(9,0,-1): #打印行,使用了倒序9.8.7.6.....
for block3 in range(0,row3-1):
print(end=" ")
#上面的这个循环for打印出空格,控制乘法表格式。
# row3循环到第几行打印第row3-1个空格。
for col3 in range(9,row3-1,-1): #打印列
print("{0}*{1}={2:2d}".format(row3,col3,row3*col3),end=" ")
# 这里是用format函数进行格式化输出控制,{2:2d}是给{2}这个位置两倍的空间,对齐乘法表
# 同时end是print函数内置方法,设置end=""print就不会进行换行操作
print(" ")
9*9=81
8*9=72 8*8=64
7*9=63 7*8=56 7*7=49
6*9=54 6*8=48 6*7=42 6*6=36
5*9=45 5*8=40 5*7=35 5*6=30 5*5=25
4*9=36 4*8=32 4*7=28 4*6=24 4*5=20 4*4=16
3*9=27 3*8=24 3*7=21 3*6=18 3*5=15 3*4=12 3*3= 9
2*9=18 2*8=16 2*7=14 2*6=12 2*5=10 2*4= 8 2*3= 6 2*2= 4
1*9= 9 1*8= 8 1*7= 7 1*6= 6 1*5= 5 1*4= 4 1*3= 3 1*2= 2 1*1= 1
5.一行代码搞定
print('\n'.join(['\t'.join(["%2s*%2s=%2s"%(j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))
6.普通两种方法
# 第一种
for i in range(1, 10):
for j in range(1, i+1):
print('{}x{}={}\t'.format(j, i, i*j), end='')
print()
# 第二种
row = 1
while row <10:
col = 1
while col <= row:
print('{}*{}={}'.format(col, row, col * row), end = '\t')#见for循环的分析
col += 1
print() #换行
row += 1 #内循环结束,外循环加一
四、用Python去除字符串中空格、冒号、句号
a='1 2 jai:。nih你好!@#$%^&*()_+'
# 第一种使用replace替换
print(a.replace(':','').replace(' ','').replace('。',''))
# 第二种使用正则表达式
rule = re.compile(r"[^a-zA-Z0-9\u4e00-\u9fa5]")
line = rule.sub('', a)
print(line)
12jainih你好!@#$%^&*()_+
12jainih你好