python70道练习题,附代码

题目1 :三位数计算
有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。

total=0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if (i!=j) and (i!=k) and (k!=j):
                print(i*100+j*10+k*1)
                total+=1
print("There are "+str(total)+" number fitted.")

   
   

题目2:奖金计算
企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

Profits=int(input("Please tell me the profit this month:\n"))
arr=[1000000,600000,400000,200000,100000,0]
rat=[0.01,0.015,0.03,0.05,0.075,0.1]
Bonus=0
for i in range(0,6):
    if(Profits>arr[i]):
        Bonus+=(Profits-arr[i])*rat[i]
        print((Profits-arr[i])*rat[i])
        Profits=arr[i]
    else:
        print("0")
print("The Bonus is "+str(Bonus)+"元")

   
   

题目3:完全平方数

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:假设该数为 x。
1、则:x + 100 = n2, x + 100 + 168 = m2
2、计算等式:m2 - n2 = (m + n)(m - n) = 168
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
for i in range(1,85):
    if 168%i == 0:
        j=168/i
        if (i>j) and ((i+j)%2==0) and ((i-j)%2==0):
            m=(i+j)/2
            n=(i-j)/2
            x=n*n-100
            print(int(x))

   
   

题目4:一年中的第几天

输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:

year=int(input("Year:"))
month=int(input("Month:"))
day=int(input("Day:"))
months = [0,31,59,90,120,151,181,212,243,273,304,334]
now=months[month-1]+day
if (year%400==0) or (year%4==0)and(year%100!=0):
    leap=1
else:
    leap=0
if (leap==1)and(month>2):
    now+=1
print("It is "+str(now))

   
   

题目5:三数排序

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

程序分析:

方法一:

我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小,,y同样操作。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
x=int(input("x:"))
y=int(input("y:"))
z=int(input("z:"))
min=x
mid=y
max=z
if(x>y):
    temp=y
    y=x
    x=temp
if(x>z):
    temp=z
    z=x
    x=temp
if(y>z):
    temp=y
    y=z
    z=temp
print('order:'+str(x)+' '+str(y)+' '+str(z))

   
   

方法二:使用列表方法sort

order=[]
for i in range(0,3):
    x=int(input("Number:"))
    order.append(x)
order.sort()
print("The order from small to big:")
for j in order:
    print(j)

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

题目6:斐波拉契数列

题目:斐波那契数列。
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列, 指的是这样一个数列:1、1、2、3、5、8、13、21、34、……
在数学上,费波那契数列是以递归的方法来定义:

F1 = 1 (n=1)
F2 = 1 (n=2)
Fn = F[n-1]+ F[n-2](n=>2)

   
   
  • 1
  • 2
  • 3

方法一:可看成a,b为幽魂附在该数列的最初相邻的两个数上(1,1),每循环一次,就共同前进一个数字(1,2),(2,3)等等。求的第n个数的话,则a前进n-1次就会附身在那个数上。

def fib(n):
    a,b = 1,1
    for i in range(n-1):
        a,b = b,a+b
    return a
print(fib(100))

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

方法二:通过公式,进行递归(运算时间会较长,不信你试试)

def fib(n):
    if(n==1)or(n==2):
        return 1
    return fib(n-1)+fib(n-2)
print(fib(60))

   
   
  • 1
  • 2
  • 3
  • 4
  • 5

方案三:如果要求出第n个数时的斐波拉契数列,可以这样。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def fib(n):
    if(n==1):
        return [1]
    if(n==2):
        return [1,1]
    fibs = [1,1]
    for i in range(2,n):
        fibs.append(fibs[-1]+fibs[-2])
    return fibs
  print(fib(100))

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

题目7:列表复制

题目:将一个列表的数据复制到另一个列表中。
程序分析:使用列表[:]。

a=[1,2,3]
b=a[:]
print(b)

   
   
  • 1
  • 2
  • 3

题目8:九九乘法表

题目:输出 9*9 乘法口诀表。
程序分析:分行与列考虑,共9行9列,i控制行,j控制列。注意print之后会自动换行,需要用end=’ '控制一下。

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

   
   
  • 1
  • 2
  • 3
  • 4

题目9:暂停1秒输出

题目:暂停一秒输出。
程序分析:使用 time 模块的 sleep() 函数。

import time
myD={1:'a',2:'b'}
for key,value in dict.items(myD):
    print(key,value)
    time.sleep(1)

   
   
  • 1
  • 2
  • 3
  • 4
  • 5

题目10:格式化时间

题目:暂停2秒输出,并格式化当前时间。

import time
print(time.strftime('%Y-%m-%d %H:%M:%S',
              time.localtime(time.time())))
# 暂停2秒
time.sleep(2)
print(time.strftime('%Y-%m-%d %H:%M:%S',
              time.localtime(time.time())))

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

题目11:兔子生孩子

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列1,1,2,3,5,8,13,21… (斐波拉契数列)

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def fib(n):
    if(n==1):
        return[1]
    elif(n==2):
        return[1,1]
    fibs=[1,1]
    for i in range(n-2):
        fibs.append(fibs[-1]+fibs[-2])
    return fibs
print(fib(5))

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

题目12:素数问题

题目:判断101-200之间有多少个素数,并输出所有素数。
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。这里解释一下:
已知n=(√n)*(√n),假设n=x*y
如果x与y都不是√n,那么当中必定有一个小于√n,一个大于√n。
所以如果n在(2,√n)不能被整除(不存在那个小于√n的数),那么在(√n,n)内也一定不能被整除(也不存在对应大于√n的数)。因此只需判断在(2,√n)就可以了。

from math import sqrt
def prime_judge(n):
    """素数判定"""
    sign=True
    for i in range(2,int(sqrt(n)+1)):
        if(n%i==0):
            sign=False
    return sign

prime_101_200=[]
total=0
for j in range(101,201):
if(prime_judge(j)):
prime_101_200.append(j)
total+=1
print(“There are “+str(total)+” prime number.”)
print(prime_101_200)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

题目13:水仙花数

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

for i in range(100,1000):
    a=int(i/100)
    b=int(i/10)%10
    c=(i%10)
    if(i == a**3+b**3+c**3):
        print(i)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

题目14:分解质因素

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5
程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from math import sqrt
def prime_judge(n):
    """素数判定"""
    sign=True
    for i in range(2,int(sqrt(n)+1)):
        if(n%i==0):
            sign=False
    return sign

def Decomposition_prime_factor(n):
“”“分解质因素”“”
prime_factor=[]
print(str(n)+“=”,end=‘’)
if prime_judge(n):
print(n)
else:
i=2
while(i<=int(n/2)+1):
if n%i0 and prime_judge(i):
prime_factor.append(i)
n = n/i
i=1
i+=1
#以n=abc形式输出
for j in range(len(prime_factor)):
if jlen(prime_factor)-1:
print(prime_factor[j])
else:
print(str(prime_factor[j])+“*”,end=‘’)

Decomposition_prime_factor(2018888)

  • 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
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

方法二:进行递归,可简化代码.但只做到90=2×3×3×5里等号后面的式子,哪位高人指点一下让我可以按标准格式输出。

from math import sqrt
def prime_judge(n):
    """素数判定"""
    sign=True
    for i in range(2,int(sqrt(n)+1)):
        if(n%i==0):
            sign=False
    return sign

def Decomposition_prime_factor(n):
if prime_judge(n):
print(int(n))
else:
for i in range(2,int(n/2)+1):
if n%i 0 and prime_judge(i):
if i int(n / 2):
print(i)
else:
print(str(i)+“*”,end=‘’)
return f(n/i)

Decomposition_prime_factor(2018)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

题目15:条件嵌套

题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析:嵌套就是条件里面还有条件。

score=int(input("学习成绩:"))
if score>=60:
    if score>=90:
        print("A")
    else:
        print("B")
else:
    print("C")

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

题目16:指定格式日期

题目:输出指定格式的日期。
程序分析:使用 datetime 模块。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import datetime

if name==main:
#输出今日日期
print(datetime.date.today().strftime(‘%d/%m/%Y’))
#创建日期对象
BirthDate=datetime.date(1999,12,12)
print(BirthDate.strftime(‘%d/%m/%Y’))
#日期算数运算
BirthNextDay=BirthDate+datetime.timedelta(days=1)
print(BirthNextDay.strftime(‘%d/%m/%Y’))
#日期替换
FirstBirthday=BirthDate.replace(year=BirthDate.year+1)
print(FirstBirthday.strftime(‘%d/%m/%Y’))

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

题目17:统计各类字符个数

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
程序分析:掌握判断各类字符的函数。

s=input("Please in put a string:")
l_alpha=0
l_space=0
l_digit=0
l_others=0
for i in s:
    if i.isalpha():
        l_alpha+=1
    elif i.isspace():
        l_space+=1
    elif i.isdigit():
        l_digit+=1
    else:
        l_others+=1
print('char='+str(l_alpha)+
      '\nspace='+str(l_space)+
      '\ndigit='+str(l_digit)+
      '\nothers'+str(l_others))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

题目18:重复数相加

题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。
程序分析:一个循环算出每一项的值,再一个循环把所有值相加。

def almost_the_same_add(a,n):
    if n==0 or a<=0:
        print(0)
    else:
        total = 0
        while(n>0):
            for i in range(n):
                total=total+a*10**i
            n-=1
        print(total)
almost_the_same_add(5,3)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

题目19:完数

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

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def wan_number(n):
    if n<2:
        return False
    total=0
    for i in range(1,int(n/2)+1):
        if n%i==0:
            total+=i
    if n==total:
        return True
    else:
        return False
wanshu=[]
for j in range(2,1001):
    if wan_number(j):
        wanshu.append(j)
print(wanshu)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

题目20:球的下落

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

height=100
ODOmeter=0
for i in range(10):
    ODOmeter+=height*1.5
    if i == 9:
        height_10=height*0.5
        ODOmeter=ODOmeter-height_10
    height/=2

print(“The distance that the ball traveled after falling from 100 meters is:”+str(ODOmeter)+" meters")
print(“The height if the tenth bounce:”+str(height_10)+" meters")

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

程序分析:我们把球从最高点下落至地面,又弹起至静止状态这个过程设置为一个段,题目要求至第十次落地时的总路程,则是共10个段的路程再减去最后一次弹起的高度即可。

题目21:猴子偷桃

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
程序分析:采取逆向思维的方法,从后往前推断

peach=1
for i in range(9):
    peach=(peach+1)*2
print(peach)

 
 
  • 1
  • 2
  • 3
  • 4

方法二:采取爆破

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
pp=1
while(True):
    peach=pp
    for i in range(9):
        peach=peach/2-1
    if peach==1:
        break
    else:
        pp+=1
print(pp)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

题目22:比赛名单

题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
程序分析:把a,b,c与x,y,z的ASCII码值进行匹配。

for a in range(ord('x'),ord('z')+1):
    for b in range(ord('x'),ord('z')+1):
        for c in range(ord('x'), ord('z') + 1):
            if (a!=b)and(a!=c)and(b!=c):
            #以上保证a,b,c跟不同的人比赛
                if a!=ord('x') and c!=ord('x') and c!=ord('z'):
                    print('a:' + chr(a))
                    print('b:' + chr(b))
                    print('c:' + chr(c))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

题目23:打印图形

题目:打印出如下图案(菱形)
程序分析:将其整体规律分成上下两个部分,其中每一行打印时分成打印空格和字符*,用两重循环完成。

try:
    rows = int(input("Input a number:"))
    for i in range(int((rows+1)/2)):
        u=int((rows+1)/2)-1-i
        for j in range(u):
            print(' ',end='')
        for k in range(rows-2*u):
            if k!=rows-2*u-1:
                print('*', end='')
            else:
                print('*')
    for i in range(int((rows-1)/2)):
        d=i+1
        for j in range(d):
            print(' ',end='')
        for k in range(rows-2*d):
            if k!=rows-2*d-1:
                print('*', end='')
            else:
                print('*')
except Exception as e:
    print("Input error")

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

方法二:网上看到一些师傅用函数轻松完成,学习了。

rows=int(input("Input a number:"))
s = '*'
for i in range(1, rows + 1, 2):
    print((s * i).center(rows))
for i in reversed(range(1, rows - 1, 2)):
    print((s * i).center(rows))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

题目24:分数序列

题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
程序分析:请抓住分子与分母的变化规律。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def f(n):
    a=2.0
    b=1.0
    total=0
    for i in range(1,n+1):
        total+=a/b
        a,b=a+b,a
    print(total)
f(20)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

题目25:累乘相加

题目:求1+2!+3!+…+20!的和。
程序分析:此程序只是把累加变成了累乘。

s=1
total=0
for i in range(1,21):
    s*=i
    total+=s
print(total)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

方法二:使用map函数。(第一个参数接收一个函数名,第二个参数接收一个可迭代对象)

def f(n):
    s=1
    for i in range(1,n+1):
        s*=i
    return s
total=sum(map(f,range(1,21)))
print(total)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

题目26:简单递归

题目:利用递归方法求5!
程序分析:递归公式:fn=fn_1*4!

def f(n):
    if n==0:
        sum=1
    else:
        sum = n * f(n - 1)
    return sum
print(f(5))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

题目27:简单递归2

题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

def f(s,l):
    if l==0:
        return
    else:
        print(s[l-1],end='')
        f(s,l-1)
s=input("Input a string:")
l=len(s)
f(s,l)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

题目28:简单递归3
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

def f(n):
    if n==1:
        age=10
    else:
        age=f(n-1)+2
    return age
print(f(5))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

题目29:分解每一位数

题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
程序分析:学会分解出每一位数。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
x=int(input("Input a  number:"))
a=x//10000
b=x%10000//1000
c=x%1000//100
d=x%100//10
e=x%10
if a!=0:
    print('五位数:'+str(e)+str(d)+str(c)+str(b)+str(a))
elif b!=0:
    print('四位数:'+str(e)+str(d)+str(c)+str(b))
elif c!=0:
    print('三位数:'+str(e)+str(d)+str(c))
elif d!=0:
    print('二位数:'+str(e)+str(d))
else:
    print('个位数:'+str(e))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

题目30:回文数判断

题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
程序分析:可以参考29题,将每一位分解出来进行比较。也可以用字符处理方法处理。

x=input("Please input a number")
s=str(x)
sign=True
for i in range(int(len(s)/2)):
    if s[i]!=s[-1-i]:
        sign=False
        break
if sign:
    print("It is a palindrome.")
else:
    print("It isn't a palindrome.")

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

题目31:首字母判断

题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
程序分析:才发现Python没有switch case语句,但可以用字典,值执行方法来代替。

def T():
    t=input("The follow alphabet:")
    if t=='u':
        print('Tuesday')
    elif t=='h':
        print('Thursday')
def S():
    s=input("The follow alphabet:")
    if s=='a':
        print('Saturday')
    elif s=='u':
        print('Sunday')
switch={
    'M':lambda:print('Monday'),
    'W':lambda:print('Wednesday'),
    'F':lambda:print('Friday'),
    'T':lambda:T(),
    'S':lambda:S()
}
letter=input("Please input:")
switch[letter]()

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

题目32:反向输出列表

题目:按相反的顺序输出列表的值。

list=['a','b','c','d']
for i in list[::-1]:
    print(i)

 
 
  • 1
  • 2
  • 3

题目33:连接字符

题目:按逗号分隔列表。
程序分析:join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

str=','
seq=['a','b','c','d']
print(str.join(seq))

 
 
  • 1
  • 2
  • 3

题目34:函数调用练习

题目:练习函数调用。
程序分析:恭喜恭喜。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def hello_world():
    print('hello world!')
def there_hellos():
    for i in range(3):
        hello_world()
there_hellos()

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

题目35:文本颜色设置

题目:文本颜色设置。
程序分析:终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以ESC开头,即用\033来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)
书写格式:开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m

class bcolors:
    HEADER = '\033[95m\033[0m'
    OKBLUE = '\033[94m\033[0m'
    OKGREEN = '\033[92m\033[0m'
    WARNING = '\033[93m\033[0m'
    FAIL = '\033[91m\033[0m'
    ENDC = '\033[0m\033[0m'
    BOLD = '\033[1m\033[0m'
    UNDERLINE = '\033[4m\033[0m'
print(bcolors.FAIL + "警告的颜色字体?" +bcolors.OKGREEN+'  蓝色')
print("\033[94m这个才是蓝色\033[0m")

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

题目36:求100内的素数

题目:求范围内的素数及个数。
程序分析:还是回到素数判定问题,恭喜发财。

from math import sqrt
def prime_judge(n):
    """素数判定"""
    sign=True
    if n<2:
        sign=False
    for i in range(2,int(sqrt(n)+1)):
        if(n%i==0):
            sign=False
    return sign
min=int(input("Input a minimum value:"))
max=int(input("Input a maximum value:"))
for i in range(min,max):
    if prime_judge(i):
        print(i)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

题目37:对10个数进行排序

题目:对10个数进行排序。
程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

list=[2,3,1,4,7,5,9,6,29,15]
print(list)
for i in range(10):
    for j in range(i+1,10):
        min=list[i]
        if list[j]<min:
            temp=list[j]
            list[j]=list[i]
            list[i]=temp
print(list)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

题目38:矩阵运算

题目:求一个3*3矩阵主对角线元素之和。
程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a=[]
sum=0.0
for i in range(3):
    a.append([])
    for j in range(3):
        a[i].append(float(input("number:")))
for i in range(3):
    sum+=a[i][i]
print(a)
print(sum)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

题目39:顺序插入列表

题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

def list_insert_inorder(number,a):
    length = len(a)
    if number>=a[length-1]:
        a.append(number)
    elif number<a[0]:
        a.append(a[length - 1])
        for i in range(1,length):
            a[length-i]=a[length-i-1]
        a[0]=number
    else:
        a.append(a[length - 1])
        for i in range(length):
            if number>=a[i] and number<=a[i+1]:
                for j in range(1,length-i-1):
                    a[length-j]=a[length-j-1]
                a[i+1]=number
                break
    return a
l=[1,3,4,6,8,9,21,34,56]
print(l)
print(list_insert_inorder(-1,l))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

题目40:逆序输出列表

题目:将一个数组逆序输出
程序分析:熟悉运用Python3列表操作

list=[1,3,2,4,22,32,122,93]
list_re=list[::-1]
print(list_re)

 
 
  • 1
  • 2
  • 3

题目41:模仿静态变量用法

题目:模仿静态变量用法
程序分析:没太懂题目意思,看了下答案。大概意思是def里面的var是非静态的,必须通过函数才能调用。class里的可以非函数部分的变量调用时先调用class就可以使用,这里模仿了静态的用法。(可以在每段函数下面print一下对应的变量作测试)

def varfunc():
    var=0
    print(var)
    var+=1

if name==main:
for i in range(3):
varfunc()
# 这个表示执行的是此代码所在的文件。
# 如果这个文件是作为模块被其他文件调用,不会执行这里面的代码。
# 只有执行这个文件时, if 里面的语句才会被执行。 这个功能经常可以用于进行测试。

class Static:
staticVar=5
def varfunc(self):
self.staticVar+=1
print(self.staticVar)
print(Static.staticVar)
a=Static()
for i in range(3):
a.varfunc()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

题目42:学习auto变量用法

题目:学习使用auto定义变量的用法。
程序分析:没有auto关键字,使用变量作用域来举例吧。(官方解释)

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
num = 2
def autofunc():
    num = 1
    print('internal block num = %d' % num)
    num += 1
for i in range(3):
    print('The num = %d' % num)
    num += 1
    autofunc()

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

题目43:模仿静态变量2

题目:模仿静态变量(static)另一案例。
程序分析:演示一个python作用域使用方法

class Num:
    nNum = 1
    def inc(self):
        self.nNum += 1
        print('nNum = %d' % self.nNum)

if name == main:
nNum = 2
inst = Num()
for i in range(3):
nNum += 1
print(‘The num = %d’ % nNum)
inst.inc()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

题目44:矩阵相加

题目:两个 3 行 3 列的矩阵,实现其对应位置的数据相加,并返回一个新矩阵:

X = [[12,7,3],
[4 ,5,6],
[7 ,8,9]]

Y = [[5,8,1],
[6,7,3],
[4,5,9]]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

程序分析:先创建一个矩阵,然后用两个for循环对各位进行相加。

X = [[12,7,3],
    [4 ,5,6],
    [7 ,8,9]]
Y = [[5,8,1],
    [6,7,3],
    [4,5,9]]
Z=[[0,0,0],[0,0,0],[0,0,0]]
for i in range(3):
    for j in range(3):
        Z[i][j]=X[i][j]+Y[i][j]
print(Z)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

题目45:累加

题目:统计 1 到 100 之和。
程序分析:无

x=101*50
print(x)
y=0
for i in range(1,101):
    y+=i
print(y)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

题目46:平方运算

题目:求输入数字的平方,如果平方运算后小于 50 则退出。
程序分析:Python3中求一个数的平方有很多方法,如n*n,n**2, 或调用sqrt函数 def f(n): return n**2 while(True): n = int(input("Please in put a number:")) if f(n)<50: break else: print(f(n))

题目47:变量值互换

题目:两个变量值互换。
程序分析:可以取中间值,也可以用函数返回。

def f(a,b):
    a,b=b,a
    return a,b
x=12
y=32
# temp=x
# x=y
# y=temp
x,y=f(x,y)
print(x,y)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

题目48:数值比较

题目:数字比较。
程序分析:无

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a=float(input("Input number a:"))
b=float(input("Input number b:"))
if a>b:
    print("%d>%d"%(a,b))
elif a<b:
    print("%d<%d"%(a,b))
elif a==b:
    print("%d=%d"%(a,b))
else:
    print("Error")

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

题目49:使用lambda创建函数

题目:使用lambda来创建匿名函数。
程序分析:使用方法:lambda [arg1 [,arg2,.....argn]]:expression

f1=lambda a,b: a+b
f2=lambda a,b,c,d:a+b-(c+d)
a,b,c,d=21,32,44,28
print(f1(a,b))
print(f2(a,b,c,d))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5

题目50:输出随机数

题目:输出一个随机数。
程序分析:使用 random 模块。

import random

a=random.uniform(100,200)
print(a)

  • 1
  • 2
  • 3
  • 4

题目51:使用按位与&运算

题目:学习使用按位与 & 。
程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1
Python二进制表达:0b1010101, 八进制表达:0o7777,十六进制表达:0xFFFF;
十进制转二进制、八进制、十六进制:bin(dec),oct(dec),hex(dec)

a=0b1010011
b=0b1100101
print(a,b,a&b)
print(bin(a&b))

 
 
  • 1
  • 2
  • 3
  • 4

题目52:使用按位或|运算

题目:学习使用按位或 | 。
程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1

a=0b1011001
b=0b1000100
print(a,b,a|b)
print((a|b))

 
 
  • 1
  • 2
  • 3
  • 4

题目53:使用按位异或^运算

题目:学习使用按位异或 ^ 。
程序分析:0^0=0; 0^1=1; 1^0=1; 1^1=0

a=0b1011001
b=0b1000100
print(a,b,a^b)
print(bin(a^b))

 
 
  • 1
  • 2
  • 3
  • 4

题目54:移位操作

题目:取一个整数a从右端开始的4〜7位。
程序分析:可以这样考虑:
(1)先使a右移3位。
(2)设置一个低4位全为1,其余全为0的数。可用~(~0<<4)
(3)将上面二者进行&运算。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
a=2123
b=a>>3
c=0b1111
x=b&c
print(a,bin(a))
print(b,bin(b))
print(x,bin(x))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

题目55:按位取反

题目:学习使用按位取反~。
程序分析:~0=1; ~1=0;
所有正整数的按位取反是其本身+1的负数
所有负整数的按位取反是其本身+1的绝对值
零的按位取反是 -1

a=-0b10101011
b=0b11111111
c=~a
d=~b
print(a,c,bin(a),bin(c))
print(b,d,bin(b),bin(d))

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

题目56:用Circle画圆

题目:画图,学用circle画圆形。
程序分析:注释里。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from tkinter import *
canvas = Canvas(width=380, height=380,bd=5,bg='white')#bd为边框厚度,默认2像素
canvas.pack(expand=YES, fill=BOTH)
k = 10
j = 5
for i in range(0,18):
    x0,y0,x1,y1=190-k,190-k,190+k,190+k;#k为最里面那个圆的半径,累加后的k为各个圆的半径
    canvas.create_oval(x0,y0,x1,y1, width=1) #圆外矩形左上角(x0,y0)与右下角坐标(x1,y1)
    k += j
    j += 0.3 #0.3为每个圆之间的边距
mainloop()

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

题目57:用Circle画直线

题目:画图,学用line画直线。
程序分析:注释里。

from tkinter import *

def main():
root = Tk()

w <span class="token operator">=</span> Canvas<span class="token punctuation">(</span>
    root<span class="token punctuation">,</span><span class="token comment">#按钮的父容器</span>
    width<span class="token operator">=</span><span class="token number">200</span><span class="token punctuation">,</span>
    height<span class="token operator">=</span><span class="token number">200</span><span class="token punctuation">,</span>
    background<span class="token operator">=</span><span class="token string">"white"</span>
<span class="token punctuation">)</span>
w<span class="token punctuation">.</span>pack<span class="token punctuation">(</span><span class="token punctuation">)</span>

w<span class="token punctuation">.</span>create_line<span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">100</span><span class="token punctuation">,</span>        <span class="token comment">#直线的起始坐标</span>
              <span class="token number">150</span><span class="token punctuation">,</span> <span class="token number">150</span><span class="token punctuation">,</span>      <span class="token comment">#终点坐标</span>
              fill<span class="token operator">=</span><span class="token string">'black'</span><span class="token punctuation">)</span>

w<span class="token punctuation">.</span>create_line<span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span>
              <span class="token number">100</span><span class="token punctuation">,</span> <span class="token number">200</span><span class="token punctuation">,</span>
              fill<span class="token operator">=</span><span class="token string">'red'</span><span class="token punctuation">,</span>  <span class="token comment"># 红色</span>
              dash<span class="token operator">=</span><span class="token punctuation">(</span><span class="token number">8</span><span class="token punctuation">,</span> <span class="token number">4</span><span class="token punctuation">)</span>  <span class="token comment"># 虚线</span>
              <span class="token punctuation">)</span>

mainloop<span class="token punctuation">(</span><span class="token punctuation">)</span>

main()

  • 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

题目58:画方形

题目:画图,学用rectangle画方形。
程序分析:程序分析:rectangle(int left, int top, int right, int bottom)
参数说明:(left ,top )为矩形的左上坐标,(right,bottom)为矩形的右下坐标,两者可确定一个矩形的大小

from tkinter import  *

root=Tk()
root.title(‘Canvas’)
canvas=Canvas(root,width=400,height=400,bg=‘yellow’)
x0,y0,x1,y1=263,263,275,275
for i in range(19):
canvas.create_rectangle(x0,y0,x1,y1)
x0-=5
y0-=5
x1+=5
y1+=5
canvas.pack()
root.mainloop()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

题目59:画图综合

题目:画图,综合例子。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。。

if __name__ == '__main__':
    from tkinter import *
canvas <span class="token operator">=</span> Canvas<span class="token punctuation">(</span>width<span class="token operator">=</span><span class="token number">300</span><span class="token punctuation">,</span> height<span class="token operator">=</span><span class="token number">300</span><span class="token punctuation">,</span> bg<span class="token operator">=</span><span class="token string">'green'</span><span class="token punctuation">)</span>
canvas<span class="token punctuation">.</span>pack<span class="token punctuation">(</span>expand<span class="token operator">=</span>YES<span class="token punctuation">,</span> fill<span class="token operator">=</span>BOTH<span class="token punctuation">)</span>
x0 <span class="token operator">=</span> <span class="token number">150</span>
y0 <span class="token operator">=</span> <span class="token number">100</span>
canvas<span class="token punctuation">.</span>create_oval<span class="token punctuation">(</span>x0 <span class="token operator">-</span> <span class="token number">10</span><span class="token punctuation">,</span> y0 <span class="token operator">-</span> <span class="token number">10</span><span class="token punctuation">,</span> x0 <span class="token operator">+</span> <span class="token number">10</span><span class="token punctuation">,</span> y0 <span class="token operator">+</span> <span class="token number">10</span><span class="token punctuation">)</span>
canvas<span class="token punctuation">.</span>create_oval<span class="token punctuation">(</span>x0 <span class="token operator">-</span> <span class="token number">20</span><span class="token punctuation">,</span> y0 <span class="token operator">-</span> <span class="token number">20</span><span class="token punctuation">,</span> x0 <span class="token operator">+</span> <span class="token number">20</span><span class="token punctuation">,</span> y0 <span class="token operator">+</span> <span class="token number">20</span><span class="token punctuation">)</span>
canvas<span class="token punctuation">.</span>create_oval<span class="token punctuation">(</span>x0 <span class="token operator">-</span> <span class="token number">50</span><span class="token punctuation">,</span> y0 <span class="token operator">-</span> <span class="token number">50</span><span class="token punctuation">,</span> x0 <span class="token operator">+</span> <span class="token number">50</span><span class="token punctuation">,</span> y0 <span class="token operator">+</span> <span class="token number">50</span><span class="token punctuation">)</span>
<span class="token keyword">import</span> math

B <span class="token operator">=</span> <span class="token number">0.809</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">16</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    a <span class="token operator">=</span> <span class="token number">2</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>pi <span class="token operator">/</span> <span class="token number">16</span> <span class="token operator">*</span> i
    x <span class="token operator">=</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>x0 <span class="token operator">+</span> <span class="token number">48</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>cos<span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">)</span>
    y <span class="token operator">=</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>y0 <span class="token operator">+</span> <span class="token number">48</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>sin<span class="token punctuation">(</span>a<span class="token punctuation">)</span> <span class="token operator">*</span> B<span class="token punctuation">)</span>
    canvas<span class="token punctuation">.</span>create_line<span class="token punctuation">(</span>x0<span class="token punctuation">,</span> y0<span class="token punctuation">,</span> x<span class="token punctuation">,</span> y<span class="token punctuation">,</span> fill<span class="token operator">=</span><span class="token string">'red'</span><span class="token punctuation">)</span>
canvas<span class="token punctuation">.</span>create_oval<span class="token punctuation">(</span>x0 <span class="token operator">-</span> <span class="token number">60</span><span class="token punctuation">,</span> y0 <span class="token operator">-</span> <span class="token number">60</span><span class="token punctuation">,</span> x0 <span class="token operator">+</span> <span class="token number">60</span><span class="token punctuation">,</span> y0 <span class="token operator">+</span> <span class="token number">60</span><span class="token punctuation">)</span>

<span class="token keyword">for</span> k <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">501</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
    <span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">17</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
        a <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">2</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>pi <span class="token operator">/</span> <span class="token number">16</span><span class="token punctuation">)</span> <span class="token operator">*</span> i <span class="token operator">+</span> <span class="token punctuation">(</span><span class="token number">2</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>pi <span class="token operator">/</span> <span class="token number">180</span><span class="token punctuation">)</span> <span class="token operator">*</span> k
        x <span class="token operator">=</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>x0 <span class="token operator">+</span> <span class="token number">48</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>cos<span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">)</span>
        y <span class="token operator">=</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>y0 <span class="token operator">+</span> <span class="token number">48</span> <span class="token operator">+</span> math<span class="token punctuation">.</span>sin<span class="token punctuation">(</span>a<span class="token punctuation">)</span> <span class="token operator">*</span> B<span class="token punctuation">)</span>
        canvas<span class="token punctuation">.</span>create_line<span class="token punctuation">(</span>x0<span class="token punctuation">,</span> y0<span class="token punctuation">,</span> x<span class="token punctuation">,</span> y<span class="token punctuation">,</span> fill<span class="token operator">=</span><span class="token string">'red'</span><span class="token punctuation">)</span>
    <span class="token keyword">for</span> j <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span><span class="token number">51</span><span class="token punctuation">)</span><span class="token punctuation">:</span>
        a <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token number">2</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>pi <span class="token operator">/</span> <span class="token number">16</span><span class="token punctuation">)</span> <span class="token operator">*</span> i <span class="token operator">+</span> <span class="token punctuation">(</span><span class="token number">2</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>pi <span class="token operator">/</span> <span class="token number">180</span><span class="token punctuation">)</span> <span class="token operator">*</span> k <span class="token operator">-</span> <span class="token number">1</span>
        x <span class="token operator">=</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>x0 <span class="token operator">+</span> <span class="token number">48</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>cos<span class="token punctuation">(</span>a<span class="token punctuation">)</span><span class="token punctuation">)</span>
        y <span class="token operator">=</span> math<span class="token punctuation">.</span>ceil<span class="token punctuation">(</span>y0 <span class="token operator">+</span> <span class="token number">48</span> <span class="token operator">*</span> math<span class="token punctuation">.</span>sin<span class="token punctuation">(</span>a<span class="token punctuation">)</span> <span class="token operator">*</span> B<span class="token punctuation">)</span>
        canvas<span class="token punctuation">.</span>create_line<span class="token punctuation">(</span>x0<span class="token punctuation">,</span> y0<span class="token punctuation">,</span> x<span class="token punctuation">,</span> y<span class="token punctuation">,</span> fill<span class="token operator">=</span><span class="token string">'red'</span><span class="token punctuation">)</span>
mainloop<span class="token punctuation">(</span><span class="token punctuation">)</span>
  • 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
  • 30
  • 31
  • 32

题目60:字符串长度

题目:计算字符串长度。
程序分析:无。

s="string"
print(len(s))

 
 
  • 1
  • 2

题目61:杨辉三角

题目:打印出杨辉三角。
程序分析:杨辉三角的规律就是,每个数字都是上一列相应前两个数字之和(第一,二列除外)

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
N = [1]
for i in range(10):  #打印10行
    M = [str(i) for i in N] #将数组转化为字符串
    print(','.join(M))      #打印直角三角形样子的杨辉三角
    M =' '.join(M)          #转化为以空格为间隔的字符串
    M_middle=M.center(100)  #将字符串编程一个长度为100的字符串,并使其居中
    print(M_middle)         #打印等腰三角形样子的杨辉三角
    N.append(0)             #在列表尾部添加数值0,使每一列开头(1+0)和最后一个数(0+1)为1
    N = [N[k] + N[k-1] for k in range(i+2)]  #按规律延长列表

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

题目62:查找字符串

题目:查找字符串所在位置
程序分析:find

S="Hello World!"
print(S.find('H'),S.find('World'))

 
 
  • 1
  • 2

题目63:画椭圆

题目:画椭圆
程序分析:看代码

from tkinter import *

top=180
bottom=180
canvas=Canvas(width=600,height=600,bg=“white”)
for i in range(10):
canvas.create_oval(300-top,300-bottom,300+top,200+bottom) #(左上角顶点,右下角顶点)
top-=5
bottom+=5
canvas.pack()
mainloop()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

题目64:利用ellipse 和 rectangle 画图

题目:利用ellipse 和 rectangle 画图
程序分析:无

if __name__ == '__main__':
    from tkinter import *
    canvas = Canvas(width = 400,height = 600,bg = 'white')
    left = 20
    right = 50
    top = 50
    num = 15
    for i in range(num):
        canvas.create_oval(250 - right,250 - left,250 + right,250 + left)
        canvas.create_oval(250 - 20,250 - top,250 + 20,250 + top)
        canvas.create_rectangle(20 - 2 * i,20 - 2 * i,10 * (i + 2),10 * ( i + 2))
        right += 5
        left += 5
        top += 10
canvas<span class="token punctuation">.</span>pack<span class="token punctuation">(</span><span class="token punctuation">)</span>
mainloop<span class="token punctuation">(</span><span class="token punctuation">)</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

题目65:一个最美的图案

题目:一个最美的图案
程序分析:无

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import math
from tkinter import *
class PTS:
    def __init__(self):
        self.x = 0
        self.y = 0
points = []

def LineToDemo():
screenx = 400
screeny = 400
canvas = Canvas(width = screenx,height = screeny,bg = ‘white’)

AspectRatio <span class="token operator">=</span> <span class="token number">0.85</span>
MAXPTS <span class="token operator">=</span> <span class="token number">15</span>
h <span class="token operator">=</span> screeny
w <span class="token operator">=</span> screenx
xcenter <span class="token operator">=</span> w <span class="token operator">/</span> <span class="token number">2</span>
ycenter <span class="token operator">=</span> h <span class="token operator">/</span> <span class="token number">2</span>
radius <span class="token operator">=</span> <span class="token punctuation">(</span>h <span class="token operator">-</span> <span class="token number">30</span><span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token punctuation">(</span>AspectRatio <span class="token operator">*</span> <span class="token number">2</span><span class="token punctuation">)</span> <span class="token operator">-</span> <span class="token number">20</span>
step <span class="token operator">=</span> <span class="token number">360</span> <span class="token operator">/</span> MAXPTS
angle <span class="token operator">=</span> <span class="token number">0.0</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span>MAXPTS<span class="token punctuation">)</span><span class="token punctuation">:</span>
    rads <span class="token operator">=</span> angle <span class="token operator">*</span> math<span class="token punctuation">.</span>pi <span class="token operator">/</span> <span class="token number">180.0</span>
    p <span class="token operator">=</span> PTS<span class="token punctuation">(</span><span class="token punctuation">)</span>
    p<span class="token punctuation">.</span>x <span class="token operator">=</span> xcenter <span class="token operator">+</span> <span class="token builtin">int</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>cos<span class="token punctuation">(</span>rads<span class="token punctuation">)</span> <span class="token operator">*</span> radius<span class="token punctuation">)</span>
    p<span class="token punctuation">.</span>y <span class="token operator">=</span> ycenter <span class="token operator">-</span> <span class="token builtin">int</span><span class="token punctuation">(</span>math<span class="token punctuation">.</span>sin<span class="token punctuation">(</span>rads<span class="token punctuation">)</span> <span class="token operator">*</span> radius <span class="token operator">*</span> AspectRatio<span class="token punctuation">)</span>
    angle <span class="token operator">+=</span> step
    points<span class="token punctuation">.</span>append<span class="token punctuation">(</span>p<span class="token punctuation">)</span>
canvas<span class="token punctuation">.</span>create_oval<span class="token punctuation">(</span>xcenter <span class="token operator">-</span> radius<span class="token punctuation">,</span>ycenter <span class="token operator">-</span> radius<span class="token punctuation">,</span>
                   xcenter <span class="token operator">+</span> radius<span class="token punctuation">,</span>ycenter <span class="token operator">+</span> radius<span class="token punctuation">)</span>
<span class="token keyword">for</span> i <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span>MAXPTS<span class="token punctuation">)</span><span class="token punctuation">:</span>
    <span class="token keyword">for</span> j <span class="token keyword">in</span> <span class="token builtin">range</span><span class="token punctuation">(</span>i<span class="token punctuation">,</span>MAXPTS<span class="token punctuation">)</span><span class="token punctuation">:</span>
        canvas<span class="token punctuation">.</span>create_line<span class="token punctuation">(</span>points<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span>x<span class="token punctuation">,</span>points<span class="token punctuation">[</span>i<span class="token punctuation">]</span><span class="token punctuation">.</span>y<span class="token punctuation">,</span>points<span class="token punctuation">[</span>j<span class="token punctuation">]</span><span class="token punctuation">.</span>x<span class="token punctuation">,</span>points<span class="token punctuation">[</span>j<span class="token punctuation">]</span><span class="token punctuation">.</span>y<span class="token punctuation">)</span>

canvas<span class="token punctuation">.</span>pack<span class="token punctuation">(</span><span class="token punctuation">)</span>
mainloop<span class="token punctuation">(</span><span class="token punctuation">)</span>

if name == main:
LineToDemo()

  • 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
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

题目66:按大小顺序输出三个数字

题目:输入3个数a,b,c,按大小顺序输出。
程序分析:先排序,再输出。

n1 = int(input('n1 = :'))
n2 = int(input('n2 = :'))
n3 = int(input('n3 = :'))
def swap(p1,p2):
    return p2,p1
if n1>n2: n1,n2=swap(n1,n2)
if n1>n3: n1,n3=swap(n1,n3)
if n2>n3: n2.n3=swap(n2,n3)
print(n1,n2,n3)

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

题目67:数组里的排序练习

题目:输入数组,最大的与

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DOT Manager

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值