Python学习第一周之编程小练习

1,打印如下图所示菱形

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

方法一:

num = int(input('>>>')) 
for i in range(-num//2,num//2+1):
    if i < 0:
        print(' '*(-i)+'*'*(num+2*i))
    else:
        print(' '*i+'*'*(num-2*i))

方法二:

for i in range(-3,4):
    print(' '*abs(i)+'*'*(7-2*abs(i)))

2,打印下图所示对顶三角形

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

方法一:

n=7
e=n//2
for i in range(-e,n-e):
    prespace = -i if i<0 else i 
    print(' '*(e-prespace)+'*'*(2*prespace+1))

3,打印下图所示闪电形状

   *   
  **   
 ***   
*******
   *** 
   **  
   * 
for i in range(-3,4):
    if i<0:
        print(' '*(-i)+'*'*(i+4)+' '*3)
    elif i>0:
        print(' '*(3)+'*'*(4-i)+' '*i)
    else:
        print('*'*7)

4,打印100以内的斐波那契数列

方法一:

a=0
b=1
c=0
print(a,b,end=',')
while True:
    c=a+b
    if c>100:
        break
    print(c,end=',') #将结果输出到同一行,并以,隔开
    a=b
    b=c

方法二:精简版

a=0
b=1
c=0
while c < 100:
    print(c)
    c=a+b
    a, b = b,c  #封装与解构,等号右边的先算

方法三:递归

# 递归方式实现 生成前20项
lis =[]
for i in range(20):
    if i ==0 or i ==1:#第1,2项 都为1
        lis.append(1)
    else:
        lis.append(lis[i-2]+lis[i-1])#从第3项开始每项值为前两项值之和
print(lis)

5,打印九九乘法表

方法一:

for i in range(1,10):
    for j in range(1,i+1):
         print("%d*%d=%2d" % (i,j,i*j),end="  ")
    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

方法二:使用format函数更方便

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

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

方法三:运用了三元表达式

for i in range(1,10):
    line = ''
    for j in range(1,i+1):
            line += '{}*{}={:<{}}' .format(i,j,i*j,2 if j<4 else 3)
    print(line)
# 与方法二相比,间隔变一样了
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=124*4=16 
5*1=5 5*2=105*3=155*4=20 5*5=25 
6*1=6 6*2=126*3=186*4=24 6*5=30 6*6=36 
7*1=7 7*2=147*3=217*4=28 7*5=35 7*6=42 7*7=49 
8*1=8 8*2=168*3=248*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
9*1=9 9*2=189*3=279*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

方法四:打印右对齐九九乘法表

for i in range(1,10):
    for k in range(1,i):
        print (end="       ")
    for j in range(i,10):
            print("%d*%d=%2d" % (i,j,i*j),end=" ")
    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 

方法五:用format函数打印右对齐九九乘法表

for i in range(1,10):
    s = ''
    for j in range(i,10):
        s += '{}*{}={:<{}} '.format(i,j,i*j, 2 if j<4 else 3)
    print('{:>80}'.format(s))

           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  

6,给一个数,判断它是否是素数(质数)

a=int(input('Please input a number greater than 1 : '))
if a == 2:
    print('''It's a Prime number''')
for i in range(2,a):
    if a%i == 0:
        print('''It's not a Prime number''')
        break
else:
    print('''It's a Prime number''')
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容