python常见基础编程题目

1、输出1-100之间所有能被7整除但是不能被5整除的数

 for a in range(1,101): #循环除1到100之间的所有数
  if a%7==0 and a%5!=0: #进行判断
    print(a)

2、输出“水仙花数”。所谓水仙花数是指1个3位的十进制数,其各位数字的立方和等于该数本身。
例如:153是水仙花数,因为153 = 13 + 53 + 33

 for i in range(100, 1000):
        x = math.floor(i / 100)  # 获得百位数
        y = math.floor((i - x * 100) / 10)  # 获得十位数
        z = i - math.floor(i / 10) * 10  # 获得个位数
        if i == x ** 3 + y ** 3 + z ** 3:
            print(i, end=', ')

    第二种写法(注意python语言中字符串的巧妙使用):
for i in range(100,1000):
    a=str(i)
    b=int(a[0])
    c=int(a[1])
    d=int(a[2])
    if i==pow(b,3)+pow(c,3)+pow(d,3):
        print(i)

3、不断地输入数字,输入b退出,然后打印出以下内容总和是多少  有多少个  平均是多少
sum=0
count=0
while True:
    a=input("请输入一个数字:")
    if a=="b":
        break  #结束循环
    else:
        count+=1
        sum+=int(a)
print(sum)
print(count)
print(sum/count)



4、求200以内能被17整除的最大正整数。
for i in range(200,17,-1):
  if i%17==0:
   print(i)
    break


5、鸡兔同笼问题。假设共有鸡、兔30只,脚90只,求鸡、兔各有多少只。
 for c in range(0,31):
     if 2*c+(30-c)*4 == 90:
       print("鸡有:",c,"只")
       print("兔有:",30-int(c),"只")


6、编写程序,输出由1、2、3、4这四个数字组成的每位数都不相同的所有三位数。
 for a in range(1,5):
     for b in range(1,5):
        for c in range(1,5):
                if a!=b and a!=c and b!=c :
                    print("%d%d%d" %(a,b,c)," ",end="")


7、编写程序,生成一个含有20个随机数的列表,要求所有元素不相同,并且每个元素的值介于1到100之间。
 a = random.sample(range(1,101),20) #random.sample()生成不相同的随机数
 print(a)

8、编写程序,计算百钱买百鸡问题。假设公鸡5元一只,母鸡3元一只,小鸡1元三只,现在有100块钱,想买100只鸡,问有多少种买法?
for a in range(0,101):
    for b in range(0,101):
        for c in range(0,101):
            if a*5+b*3+c/3==100 and a+b+c==100:
                print(a,b,c)

9、统计int a = 847574中位值为”1”的个数(Integer)
 如果a = 7, 那么位值为1的个数为3
 如果a = 9, 那么位值为1的个数为2
 a=847574
 count=0
 while a!=0:
     if a%2==1:
         count+=1
    else:
        pass
    a=a//2

 第二种写法,直接调用bin函数
print(bin(847574).count("1"))




10、在屏幕上打印1-30数,每7个数换行
 for i in range(1,31):
     if i%7==1:
        print()
     print( i,end="")

11、打印1000以内的所有素数(质数,只能被1和自身整除的数)
 i = 2
 while(i < 1000):
    j = 2
    while(j <= (i/j)):
       if not(i%j):
          break
      j = j + 1
   if (j > i/j) :
       print (i," ",end="")
    i = i + 1

12、打印10以内所有的偶数
 for i in range(0,10):
     if i%2==0:
         print(i)

13、九九乘法口诀表
 for i in range(1,10):
     for j in range(1,i+1):
          print( "%d*%d=%d\t"%(j,i,j*i),end="")
     print()


14从控制台输出,方法定义如右下图:
 123456
 234561
 345612
 456123
 561234
 612345
 for i in range(1,7):
     for j in range(i,7):
         print(j,end="")
     for h in range(1,i-1+1):
         print(h,end="")
    print()






你可能感兴趣的:(python常见基础编程题目)