05python的相关练习

1.把A列表的第三到第六位之间的元素删除。

# 把A列列表的第三到第六位之间的元素删除。
A = [i for i in range(1,20)]   #产生一个列表
print("删除前:",A)
for i in range(2):        #思路:删除当前下标的元素后,后一个元素的下标变为当前下标,再次删除就行了
    del A[3]
    print("被删除的元素:",A[3])
print("删除后:",A)

运行结果:
删除前: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
被删除的元素: 5
被删除的元素: 6
删除后: [1, 2, 3, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]


2.已知A列列表,B列列表,定义⼀一个列列表C,要求C包含A,B数组中的数据(无重复值)。

# 已知A列列表,B列列表,定义⼀一个列列表C,要求C包含A,B数组中的数据(无重复值)。
A = [i for i in range(1,20)]
B = [i for i in range(10,30)]
C = A+B               # 先把两个列表合并在一起   然后再去去除重复的元素

# 去除重复的元素
i = 0    # i表示从左边取出元素的下标
while i <len(C):
    for x in range(len(C)-1,i,-1):    # x 表示从列表右边取出元素的下标,从右边一直取到下标(i-1)
        if C[i] == C[x]:            # 两个元素相同 删除右边的元素,保留左边的元素。
            del C[x]
    i += 1
print("去除重复元素后的C列表:",C)
运行结果:
去除重复后的C列表: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 
                 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29]


3.求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀一个数字。例例如2+22+222+2222+22222(此时共有5个数相 加),⼏几个数相加有键盘控制。

# 求s=a+aa+aaa+aaaa+aa...a的值,其中a是⼀一个数字。例例如2+22+222+2222+22222(此时共有5个数相 加),⼏几个数相加有键盘控制。
while True:
    n = int(input("请输入N的值:"))
    a = int(input("请输入a的值:"))
    if 0 <= a <= 9:                 # a的值不能超过9
        a = str(a)
        s = 0
        for i in range(1, n+1):

            number = a * i
            print(number)
            s += int(number)
        print("他们的和是:", s)
        break

    else:
        print("输入的a值有问题 请重新输入:")
运行结果:
请输入N的值:9
请输入a的值:12
输入的a值有问题 请重新输入:
请输入N的值:6
请输入a的值:1
1
11
111
1111
11111
111111
他们的和是: 123456


3. 打印图形1

n = 4
@
@@
@@@
@@@@

n = int(input("请输入N的值:"))
for i in range(n):
    for x in range(i+1):
        print("@",end = "")
    print("")
运行结果:
请输入N的值:6
@
@@
@@@
@@@@
@@@@@
@@@@@@


4.打印图形2

n = int(input("请输入N的值:"))

# 打印正三角
for i in range(1,n+1):      # i 控制打印的行数
    for x in range(n-i):    #第一(i)排打印n-1(n-i)个空格i,第二行打印
        print(" ",end="")   #控制打印空格

    for y in range(i):
        print("@ ",end="")

    print("")               #打印完一行就换行
print("正三角打印完毕!")


#打印倒三角:
for i in range(n):      # i 控制打印的行数

    for y in range(n-i):
        print("@ ",end="")

    print("")               #打印完一行就换行
print("倒三角打印完毕!")
运行结果:
请输入N的值:5
    @ 
   @ @ 
  @ @ @ 
 @ @ @ @ 
@ @ @ @ @ 
正三角打印完毕!
@ @ @ @ @ 
@ @ @ @ 
@ @ @ 
@ @ 
@ 
倒三角打印完毕


5. 输入两个正整数m和n,求其最大公约数和最小公倍数。

# 输⼊入两个正整数m和n,求其最⼤大公约数和最⼩小公倍数
m = int(input("请输入m的值:"))
n = int(input("请输入n的值:"))

if m<n:
    temp = m
    m = n       #交换两数的值    #交换两个数的值,是为了固定大的数字在前,小的数字在后,方便后面写代码
    n = temp

for i in range(n,0,-1):    #思路:约数从最大的开始找起
    if m % i == 0 and n % i == 0:
        print("%d与%d的最大公约数是:%d"%(m,n,i))
        print("%d与%d的最小公倍数是:%d" % (m, n, m*n/i))
        break        #找到的第一个就是最大公约数,后面的不用再继续。
运行结果:
请输入m的值:36
请输入n的值:96
96与36的最大公约数是:12
96与36的最小公倍数是:288


6. ⼀个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有 完数

# ⼀一个数如果恰好等于它的因⼦子之和,这个数就称为 "完数 "。例例如6=1+2+3.编程 找出1000以内的所有 完数
number = []
for i in range(1,1001):
    for x in range(1,i):        # x 表示i这个数的一个因子
        if i % x == 0:
            number.append(x)    #把x加入到一个列表中,方便后面求和。

    s = 0                       # s 用于存储因子的和
    for y in range(len(number)): # 把因子依次取出来并且相加
        s += number[y]
    if s == i:
        print("找到了一个完数:",i,end=" = ")
        for n in range(len(number)):        # 为了打印时好看设置的代码 可以删除
            if n==len(number)-1:
                print(number[n])
            else:
                print(number[n],end="+")
        print ("")
    number = []             #每一个主循环末尾  存储因子的列表要清空  否则不能正确存储下一个数的因子
运行结果:
找到了一个完数: 6 = 1+2+3
找到了一个完数: 28 = 1+2+4+7+14
找到了一个完数: 496 = 1+2+4+8+16+31+62+124+248


7. 输出9*9口诀

# 打印九九乘法表
for i in range(1,10):
    for x in range(1,i+1):          # 太简单 就不解释了
        print("%s×%s=%s\t"%(x,i,x*i),end="")
    print("")
运行结果:
1×1=1   
1×2=2   2×2=4   
1×3=3   2×3=6   3×3=9   
1×4=4   2×4=8   3×4=12  4×4=16  
1×5=5   2×5=10  3×5=15  4×5=20  5×5=25  
1×6=6   2×6=12  3×6=18  4×6=24  5×6=30  6×6=36  
1×7=7   2×7=14  3×7=21  4×7=28  5×7=35  6×7=42  7×7=49  
1×8=8   2×8=16  3×8=24  4×8=32  5×8=40  6×8=48  7×8=56  8×8=64  
1×9=9   2×9=18  3×9=27  4×9=36  5×9=45  6×9=54  7×9=63  8×9=72  9×9=81  


8.一个5位数,判断它是不是回文数。即12321是回⽂文数,个位与万位相同,十位与千位相同。

while True:
    n = input("请输入一位五位整数:")
    if len(n) == 5 :                        #太简单 就不解释了
        if n[0]==n[-1] and n[1]==n[-2]:
            print("%s是一个回文数" % (n))
            break

        else:
            print("%s不是一个回文数"%(n))
            break
    else:
        print("输入的数不是五位数,请重新输入")
运行结果:
请输入一位五位整数:1235
输入的数不是五位数,请重新输入
请输入一位五位整数:12345
12345不是一个回文数


9.打印图形(菱形)

# 打印图形(菱形)
n = int(input("请输入N的值:"))            #整体思路:将上面打印正三角的代码,后面加上打印倒的正三角的代码就行了
for i in range(1,n+1):      # i 控制打印的行数
    for x in range(n-i):    #第一(i)排打印n-1(n-i)个空格i,第二行打印
        print(" ",end="")   #控制打印空格

    for y in range(i):
        print("@ ",end="")
    print("")
for i in range(1, n):  # i 控制打印的行数for x in range(i):  # 第一(i)排打印n-1(n-i)个空格i,第二行打印
    for x in range(i):
        print(" ", end="")  # 控制打印空格

    for y in range(n-i):
        print("@ ", end="")
    print("")               #打印完一行就换行
print("打印完毕!")
运行结果:
请输入N的值:7
      @ 
     @ @ 
    @ @ @ 
   @ @ @ @ 
  @ @ @ @ @ 
 @ @ @ @ @ @ 
@ @ @ @ @ @ @ 
 @ @ @ @ @ @ 
  @ @ @ @ @ 
   @ @ @ @ 
    @ @ @ 
     @ @ 
      @ 
打印完毕!


10.输入⼀行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

str1 = input("请随便输入一些字符吧:")     
chinese = 0
english = 0              # 整体思路:用unicode编码来判断取出的字符是什么属性。
space = 0
other =0
number = 0
for i in str1:
    if 0x4e00 <= ord(i) <= 0x9fbf:    #中文的编码在这个区间
        chinese += 1
    elif 0x0041 <= ord(i) <= 0x005a or 0x0061 <= ord(i) <= 0x007a: #英文字母的编码在这个区间
        english += 1
    elif 0x0030 <= ord(i) <= 0x0039:      # 数字的编码在这个区间
        number += 1
    elif ord(i) == 0x00a0 or ord(i) == 0x0020:    #空格的编码是这个
        space += 1
    else:            #剩下的就是其他的字符了
        other += 1
print("您输入的字符串中:汉字有%d个,数字有%d个,字母有%d个,空格有%d个,其他字符有%d个"%(chinese,number,english,space,other))
运行结果:
请随便输入一些字符吧:123   一二三,。ACD、、】abc
您输入的字符串中:汉字有3个,数字有3个,字母有6个,空格有3个,其他字符有5个
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349

推荐阅读更多精彩内容