python练习题

个人博客     https://www.wzstyle.cn/

1、给一个半径,求圆的面积和周长,圆周率3.14

radius = int(input('radius = '))
print('area = ', 3.14 * radius **2)
print('circumference = ', 3.14 * 2 * radius)

2、输入两个数,比较大小后,从小到大升序打印

a = int(input('first number= '))
b = int(input('second number= '))
if a > b:
    print(b,a)
else:
    print(a,b)

3、依次输入若干个整数,打印出最大值,如果输入为空,则退出程序

m = int(input('Input first number >>>'))
while True:
    c = input('Input a number >>>')
    if c:
        n = int(c)
        if n > m:
            m = n
        print('Max is',m)
    else:
        break

4、给定一个不超过5位的正整数(不转换为字符串),判断该数的位数,依次打印出万位、千位、百位、十位、个位的数字

c = int('54321') 
w = 10000
length = 5
flag = False #开关量,打标记,假定没找到第一个非0

for  i in range(5):
    x = c // w
    if not flag:
        if x:     #找到第一个非0 数字,从此开始打印
            flag = True
        else:
            length -= 1
    if flag:
        print(x)
        
    c = c % w    #依次取模 4321 321 21 1
    w = w // 10  #依次整除 1000 100 10 1
print('the length of the number is : ',length)

 

5、输入n个数字,求每次输入后的算数平均数

s = 0
n = 0
while True:
    x = input('input a number:')
    if x == '':
        break
    s += int(x)
    n +=1
    print('avg is : ',s / n)

6、打印一个边长为n的正方形

方法1:

n = 5
char = '*'
print(n * char)
for i in range(n-2):
    print(char + ' '*(n-2) + char)
print(n * char)


方法2:

n = 5
char = '*'

for i in range(n):
    if i == 0 or i == n-1:
        print(char * n)
    else:
        print(char + ' '*(n-2) + char)

7、求100以内奇数的和

s = 0
for i in range(1,100,2):
    s = s+i
print(s)

直接使用sum函数:
print(sum(range(1,100,2)))

8、根据学生成绩,打印出不同等级

x = int(input('enter a grade>>> '))
if x >= 90:
    print('A')
elif x>=80:
    print('B')
elif x>=70:
    print('C')
elif x>=60:
    print('D')
else:
    print('E')

9、求1到5的阶乘之和

s = 0
x = 1
for i in range(1,6):
    x = x * i
    s += x
print(s)

10、求素数

素数,也就是质数:一个数只能被1和它自身整除

n = 12577
for i in range(2,n):   #对这个数从2开始测试
    if n % i == 0 :    #能被整除就是合数
        print(n,'is a  composite number')
        break
else:
    print(n,'is a prime number')

 

三元表达式:是一个简单的表达式,一般只能写成一行,格式:

真值表达式  if   条件语句  else  假值表达式:

       a = int(input(''))

  • print('a>5') if a > 5 else print('a<5')
  • s= '>5'  if a > 5 else '<5'
    print(s)
  • print( 'a>5' if a > 5 else 'a<5')

 

11、打印99乘法表

for i in range(1,10):
    for j in range(1,i+1):
            print(str(j) + '*' + str(i) + '=' + str(j*i),end='\t')
    print()
for i in range(1,10):
    for j in range(1,i+1):
        line = '{}*{}={:<{}}'.format(j,i,j*i,1 if j==1 else 2)
        print(line,end=' ')
    print()   #执行到这一句的时候,默认end='/n'换行
for i in range(1,10):
    for j in range(1,i+1):
        line = '{}*{}={:<{}}'.format(j,i,j*i,1 if j==1 else 2)
        print(line,end='\n' if j==i else ' ')

用右对齐方式打印99乘法表:

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

 

12、用户登录验证,错误3次则退出程序

username='admin'
password='admin123'

for i in range(3):
    u = input('enter your username: ')
    p = input('enter your password: ')
    if u==username and p==password:
        print('login sucessfully!')
        break
    else:
        print('username or password error!')
name='admin'
passwd='admin123'
time=1
while time<=3: 
    n = input('enter your username : ')
    p = input('enter your password : ')
    if n == name and p == passwd: 
        print('login successfully! you name and passwd is : ' +  name,passwd)
        break
    else:
        print('username or passwd error!')
    time +=1

13、打印菱形

for i in range(-3,4):
    if i<0:
        spaces=-i  
    else:
        spaces=i
    print(spaces * ' ' + '*'*(7-2*spaces))
n=7    #给定一个奇数
e=n//2
leadingchar=' '
char='*'
for i in range(-e,e+1):
    print('{:^{}}'.format((n-2*abs(i))* char,n))

打印一个对顶三角形

n=7
e=n//2
for i in range(-e,e+1):
    print('{:^{}}'.format('*' * (2 * abs(i) +1),n))

14、打印闪电

n=7
e=n//2
x=e+1
for i in range(-e,x):
    if i<0:
        print(' ' * -i + (x + i)* '*' )
    elif i>0:
        print(' ' * e + (x - i)* '*')   #e值不变,在此处一直是3,x值一直为4
    else:
        print(n * '*')

15、打印100以内的斐波那契数列

print(0)
print(1)
a=0
b=1
while True:
    c = a+b
    if c >100:
        break
    a = b    
    b = c    #每循环一次,b的值都重新赋给a,c的和都重新赋值给b
    print(c)

16、求斐波那契数列的101项

a = 0
b = 1
print(0,0)
print(1,1)
index = 1
while True:
    c = a+b
    index +=1
    print('index={},fib={}'.format(index,c))
    a = b
    b = c
    if index==101:break

17、求10万内的所有素数

import datetime

start = datetime.datetime.now()
count=1
for x in range(3,100000,2):    #舍弃掉所有的偶数,只计算奇数,减少一半的计算量
    if x > 10 and x % 5 == 0:  
        continue
    for i in range(3, int(x ** 0.5)+1, 2):
        if x % i ==0:
            break
    else:
        count += 1   
delta = (datetime.datetime.now() - start).total_seconds()
print(delta,count)

个人博客:    https://www.wzstyle.cn/

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值