python输出边长为n的正方形_python习题解析

for i in range(10):

if not i & 0x01:

print(i)

2.给定一个不超过5位的正整数,判断其有几位(使用input函数)

方法一:正常逻辑处理

a = int(input("Please enter a numer: "))

if a < 0:

print(‘Error‘)

if a < 10:

print(1)

elif a < 100:

print(2)

elif a < 1000:

print(3)

elif a < 10000:

print(4)

elif a < 100000:

print(5)

else:

print(‘Error‘)

方法二:折半

val=input("Please enter a numer: ")

val=int(val)

if val>=1000:

if val>=10000:

print("这是五位数")

else:

print("这是四位数")

else:

if val>=100:

print("这是三位数")

elif val>=10:

print("这是两位数")

else:

print("这是一位数")

方法三:字符串处理

a = str(int(input("Please enter a number: ")))

print(len(a))

3.给定一个不超过5位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字

方法一:

val=input(‘>>>‘)

val=int(val)

print(val)

if val>=1000:

if val>=10000:

num=5

else:

num=4

else:

if val>=100:

num=3

elif val>=10:

num=2

else:

num=1

print(num)

pre=0

for i in range(num,0,-1):

cur=val//(10**(i-1))

print(cur-pre*10)

pre=cur

方法二:

num =int(input("请输入一个数字:"))

print(num)

countnum=0

while True:

print(num%10)

num=num//10

countnum+=1

if num==0:

break

print("您输入的位数是:",countnum)

方法三:

c=int(input(">>>"))

w=10000

x=length

flag =False

while w:

t=c//w

if flag:

print(t)

else:

if t:

print(t)

flag=True

else:

x -= 1

c %= w

w//=10

print("这个数的位数是",x)

4.打印一个边长为n的正方形

方法一:

a = int(input("Please enter a number: "))

for i in range(a):

if i == 0 or i == a-1:

print(‘*‘ * a )

else:

print(‘*‘ + ‘ ‘ * (a - 2) + ‘*‘)

方法二:

a = int(input("Please enter a number: "))

print(‘*‘ * a)

for i in range(a - 2):

print(‘*‘ + ‘ ‘ * (a - 2) + ‘*‘)

else:

print(‘*‘ * a)

方法三:

a = int(input("Please enter a number: "))

top = mid = ‘*‘

for i in range(a - 1):

top += ‘\t*‘

mid += ‘\t‘

else:

mid += ‘*‘

print(top)

for i in range(a - 2):

print(‘\n‘)

print(mid)

else:

print(‘\n‘)

print(top)

5.求100内所有奇数的和(2500)

sum = 0

for i in range(1,100,2):

sum += i

print(sum)

6.判断学生成绩,成绩等级A~E。其中,90分以上为‘A‘,80~89分为‘B‘,70~79分为‘C‘,60~69分为‘D‘,60分以下为‘E‘

a = int(input(‘Please enter a score: ‘))

if a > 79:

if a >= 90:

print(‘A‘)

else:

print(‘B‘)

elif a >= 70:

print(‘C‘)

elif 60 <= a < 69:

print(‘D‘)

else:

print(‘E‘)

7.求1到5阶乘之和

方法一:

sum = 0

for i in range(1,6):

mul = 1

for j in range(1,i + 1):

mul *= j

sum += mul

print(sum)

方法二:效率高

sum = 0

mul = 1

for i in range(1,6):

mul *= i

sum += mul

print(sum)

8.求圆的面积和周长

r=int(input(">>>"))

print("area="+str(3.14*r*r))

print("circumference="+str(2*3.14*r))

9.输入若干个数,打印出最大值,如果输入为空,退出程序

m = int(input(">>>"))

while True:

c = input(">>>")

if c:

n = int(c)

if n > m :

m = n

print("max is",m)

else:

break

10.输入n 个数 求每次输入的算术平均数。

count = 0

sum = 0

while True:

num = int(input(">>>"))

count += 1

sum += num

print("avg is ",sum / count)

if num == 0:

break

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

a=int(input("Please enter a number: "))

for i in range(2,int(a ** 0.5) + 1):

if a % i != 0:

continue

elif a % i == 0:

print(("N: %d") % (i))

break

else:

print("Yes,prime")

12.打印九九乘法表

方法一:

for i in range(1,10):

line = ‘‘

for j in range(1,i + 1):

line = line + (‘%d*%d=%2d ‘) % (j,i,i*j)

print(line)

方法二:列表解析式

[print("{}*{}={:<3}".format(j,i,i*j),end=‘\n‘ if i ==j else ‘‘) for i in range(1,10) for j in range(1,i+1)]

13.打印菱形

方法一:

for i in range(-3,4):

if i<0:

prespace=-i

else:

prespace=i

print(‘ ‘*prespace + ‘*‘*(7-prespace*2))

方法二:

n =int(input(">>>"))

e = n//2

for i in range(-e,e+1):

if i < 0 :

p = -i

else:

p =i

print(" "*p+ "*"*(n-2*p))

14.打印闪电图形

方法一:

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,e+1):

if i < 0 :

print(" "*(-i)+‘*‘*((e+1)+i))

elif i > 0:

print(" "*e + ‘*‘*((e+1)-i))

else:

print("*"*n)

15.打印对顶三角形

方法一:

for i in range(-3,4):

x = -i if i < 0 else i

print(" "*(3-x)+"*"*(2*x+1))

方法二:

n =int(input(">>>"))

e = n//2

for i in range(-e,e+1):

x = -i if i < 0 else i

print(" "*(e-x)+"*"*(2*x+1))

16.打印100以内的斐波那契数列

a=0

b=1

print(1)

while True:

c=a+b

if c>100:

break

a=b

b=c

print(c)

17.求斐波那契数列第101项 573147844013817084101

方法一:

a = 0

b = 1

print(0,a)

print(1,b)

index = 2

while True:

c = a + b

print(index,c)

if index == 101:

break

a = b

b = c

index += 1

方法二:

a = 0

b = 1

for _ in range(100):

a, b = b , a+b

print(b)

18.求10万内的所有素数 9592

方法一:(先简单化)

for x in range(2,100):

for i in range(2,x):

if x%i==0:

break

else:

print(x,end=" ")

方法二:

for x in range(3,10000,2):

for i in range(3,int(x**0.5)+1):

if x%i==0:

break

else:

print(x,end=" ")

方法三:

import time

start= time.clock()

number = 100000

count = 2

for num in range(4,number):

if num%6 != 1 and num%6 != 5:

continue

else:

snum = int(num**0.5+1)

for i in range(5,snum):

if not num%i:

break

else:

count += 1

print(count)

end=time.clock()

print("run:{}".format(end-start))

方法四:(利用素数特性:大于3的素数形式都是6N-1和6N+1)

import time

start= time.clock()

number = 100000

count = 2

for num in range(4,number):

if num%6 != 1 and num%6 != 5:

continue

else:

snum = int(num**0.5+1)

for i in range(5,snum):

if not num%i:

break

else:

count += 1

print(count)

end=time.clock()

print("run:{}".format(end-start))

19.反向乘法表:

方法一:

for i in range(1,10):

line = ‘‘

for j in range(i,10):

line += ‘%d*%d=%2d ‘ % (i,j,j * i)

print(‘ ‘ * (7 * i - 6) + line)

方法二:

for i in range(1,10):

line = ‘‘

for j in range(i,10):

line += ‘%d*%d=%2d ‘ % (i,j,j * i)

print(‘{:>63}‘.format(line))

方法三:

for i in range(1,10):

line = ‘‘

for j in range(i,10):

line += ‘{}*{}={:

print(‘{:>70}‘.format(line))

20.猴子吃桃:

n=1

for i in range(1,10):

n=(n+1)*2

print(n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值