Python练习(一)

一、打印正方形

##打印一个长度为n的正方形5

num = int (input("num:"))
for i in range(num): ##控制行数
    for j in range (num): ##控制列数
        print ("*  ",end='')
    print ()

##打印一个空心的长度为n的正方形
for i in range (num):
    if i == 0 or i == (num-1) :
        print ('* '*num)
    else :
        print ('* '+'  '*(num-2)+'* ')
#边为3,则-1 0 1 --> range(-1,2)
#边为4,则-2 -1 0 1 --> range(-2,2)
#边为5,则-2 -1 0 1 2 --> range(-2,3)
#边为6,则-3 -2 -1 0 1 2 --> range(-3,3)
#规律:边长为n,则左边界为e=-n//2,右边界为n+e,即range(e,n+e)
n = int (input("长度:"))
e = -n//2
for i in range (e,n+e):
    if i == e or i == n+e-1 :
        print('* '*n)
    else:
        print('* '+'  '*(n-2) + '*')

二、打印九九乘法表

for i in range(1,10):##外层循环控制打印行数
    for j in range(1,10):
        print(str(j)+'*'+str(i)+'=',i*j,end = " ")
        if j==i:
            #print()
            break
    print()


for i in range(1,10):##外层循环控制打印行数
    for j in range(1,i+1):
        print(str(j)+'*'+str(i)+'=',i*j,end = " ")

    print()


for i in range(1,10):
    line=''
    for j in range(1,i+1):
        line += str(j)+'*'+str(i)+'='+str(i*j)+' '
    print(line)

for i in range(1,10):
    line=''
    for j in range(1,i+1):
        line += "{}*{}={} ".format(j,i,i*j)
    print(line)

for i in range(1,10):
    for j in range(1,i+1):
        if i==j:
            endchar='\n'
        else:
            endchar=''
        #endchar='\n' if i==j else ''  ##三元表达式
        print("{}*{}={} ".format(j,i,i*j),end=endchar)
##优化对齐
for i in range(1,10):
    for j in range(1,i+1):
        print("{}*{}={}{}".format(j,i,i*j, ' ' if j==2 and i<5 else ''),end='\n' if i == j else ' ')

##使用列表方式实现
for i in range(1,10):
    line=[]
    for j in range(1,i+1):
        line.append("{}*{}={}".format(j,i,i*j))
    print(*line)##参数结构,把列表中每个元素结构

##倒三角打印
for i in range(1,10):
    line =''
    for j in range(i,10):
        line +='{}*{}={:<{}}'.format(i,j,i*j,2 if j<4 else 3 )
    print('{:>60}'.format(line))
        

三、打印菱形

##打印菱形
##第一行打印:3个空格一个‘*’号3个空格
##第二行打印:2个空格3个‘*’号2个空格
##第三行打印:1个空格5个‘*’号1个空格
##第四行打印:0个空格7个‘*’号0个空格
##第五行打印:1个空格5个‘*’号1个空格
##第六行打印:2个空格3个‘*’号2个空格
##第七行打印:3个空格一个‘*’号3个空格
for i in range(-3,4): ##利用对称性,左闭右开
    if i<0:
        i = -i
    print(' '*i + '*'*(7-2*i))


##改进
n=int(input('>>>'))
e=-(7//2)
for i in range(e,n+e):
    if i<0:
        i=-i
    print(' ' * i + '*' * (7 - 2 * i))

n=int(input('>>>'))
e=-(7//2)
for i in range(e,n+e):
    # if i<0:
    #     i=-i
    print(' ' * abs(i) + '*' * (7 - 2 *abs(i))) ##abs()绝对值函数

##采用居中对齐的方式
#空格(绝对值)  '*'号   空格(绝对值)
#3            1      3
#2            3      2
#1            5      1
#0            7      0
#1            5      1
#2            3      2
#3            1      3
n=7
e=7//2

for i in range(-e,n-e):
    print ("{:^{}}".format('*'*(n-2*abs(i)),n))

四、打印对顶三角形

序号对称序列星号数总空格数前置空格后置空格
137000
225211
313422
401633
513422
625211
737000

可以看出,只跟前导三角形,起点、终点有关

##居中对齐
for i in range (-3,4):
    #print('{:^7}'.format('*'*(2*abs(i)+1)))
    print('{:^{}}'.format('*'*(2*abs(i)+1),7))

##打印空格
for i in range(-3,4):
    print(' '*(3-abs(i))+'{}'.format('#'*(2*abs(i)+1)))

##优化
n=int(input('>>>'))
e=n//2
for i in range(-e,n-e):
    print("{}{}".format(' '*(e-abs(i)),'$'*(2*abs(i)+1)))

运行结果

*******
 ***** 
  ***  
   *   
  ***  
 ***** 
*******

五、打印闪电

#行号  *个数  前空格  后空格  总空格数  数据
#1      1     3      3       6      -3
#2      2     2      3       5      -2
#3      3     1      3       4      -1
#4      7     0      0       0       0
#5      3     3      1       4       1
#6      2     3      2       5       2
#7      1     3      3       6       3
#提示:找空格数规律
for i in range(-3,4):
    if i<0:
        print(' '* -i + (4+i) * '*')
    elif i > 0:
        print(' '*3 + (4-i)* '*')
    else:
        print('*'*7)

##优化
n=int(input('>>>'))
e=n//2
for i in range(-e,n-e):
    if i<0:
        print(' '* -i + (n-e+i) * '*')
    elif i > 0:
        print(' '*e + (n-e-i)* '*')
    else:
        print('*'*n)

运行结果

   *
  **
 ***
*******
   ***
   **
   *

六、打印举行

##打印一个长度为n的正方形5

num = int (input("num:"))
for i in range(num): ##控制行数
    for j in range (num): ##控制列数
        print ("*  ",end='')
    print ()

##打印一个空心的长度为n的正方形
for i in range (num):
    if i == 0 or i == (num-1) :
        print ('* '*num)
    else :
        print ('* '+'  '*(num-2)+'* ')
#边为3,则-1 0 1 --> range(-1,2)
#边为4,则-2 -1 0 1 --> range(-2,2)
#边为5,则-2 -1 0 1 2 --> range(-2,3)
#边为6,则-3 -2 -1 0 1 2 --> range(-3,3)
#规律:边长为n,则左边界为e=-n//2,右边界为n+e,即range(e,n+e)
n = int (input("长度:"))
e = -n//2
for i in range (e,n+e):
    if i == e or i == n+e-1 :
        print('* '*n)
    else:
        print('* '+'  '*(n-2) + '*')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Python是一门十分流行的编程语言,它简单易学、代码简洁、功能强大。完成一百道Python练习题是提高Python编程能力、加深对Python语言的理解的一种很好的方式。 这一百道练习题包括了从基础语法到高级应用等各方面的知识。比如,学会了条件语句、循环语句、函数、列表、字典等基本知识后,就可以尝试一些更加高级的练习题,如利用Python进行数据分析、可视化等。 而通过完成练习题,我们可以提高编程的思维能力,如算法思维、问题分析和编程细节等方面的能力。同时还可以加深对Python语言的各种库、模块的了解和应用。 在做练习题过程中,还需要注意遵守代码规范,编写优雅的代码,这不仅能提高代码的可读性,也是在实际工作中需要遵守的基本要求之一。 总之,完成一百道Python练习题虽然是一项比较艰巨的任务,但是通过不懈努力,能够提高Python编程能力、加深对Python语言的理解,为日后的编程工作、学习等提供坚实的基础。 ### 回答2: 一百道Python练习题是一份很好的学习和练习材料,可用于巩固Python编程语言的基础知识,提高编程技能。这些练习题涵盖了Python编程的各个方面,如标准库的使用、函数的定义、条件语句、循环语句、字符串操作、列表操作、字典操作等等。 通过完成这些练习题,可以加深对不同Python概念的理解,更多地掌握Python的语法和特性,进而提升解决问题的能力。这些练习题也可以用于检查和评估学习者的编程水平,以便进一步调整学习计划和课程内容,更好地满足学习者的需求。 在完成这些练习题时,建议先仔细阅读题目要求和提示,尝试自己完成,如遇到困难可寻求相关资料和帮助。同时,还应注重代码的质量和可读性,考虑测试和调试的重要性。 总之,通过完成这些Python练习题,可以提高自己的编程能力和实践经验,进而更好地应对实际编程问题。 ### 回答3: 一百道Python练习题是很好的练习机会,对于初学者和有经验的开发者都有用。通过解决这些题目,可以提高对Python语言的理解和掌握程度,加深对编程逻辑和算法的认识,锻炼编程思维,提高代码实现能力。 这些题目从简单到困难,涵盖了Python的各个领域,包括基本语法、列表、字典、函数、模块、文件处理、正则表达式等。 题目多样化,涉及到数学、计算机科学以及实际编程中常见的问题。解决这些问题需要分析题目,理解题意,寻找合适的解决方案,写出清晰易读的代码。 解决这些练习题不仅有助于提高Python编程能力,还有利于增强编程的实际应用能力。在解决每一个问题的过程中,也需要考虑到实际开发中的各种情况,并尝试更多的练习和尝试。 总之,一百道Python练习题是很有用的编程练习资源,对于任何想要提高自己Python编程能力的人来说都是值得尝试的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值