Python 基础语法之三(练习)

2019-07-06  本文已影响0人  Alexander_Zz

一、基础练习

1.1 给定一个不超过 5 位的正整数,判断该数的位数,依次打印出个位、十位、百位、千位、万位的数字
num = int(input('>>>'))
if num >= 1000:
    if num > 9999:
        print ('5')
    else:
        print ('4')
elif num >= 100:
    print ('3')
elif unm >=10:
    print ('2')
else:
    print ('1')
num = int(input('>>>'))
if num >= 1000:
    if num > 9999:
        digit = 5
    else:
        digit = 4
elif num >= 100:
    digit = 3
elif unm >=10:
    digit = 2
else:
    digit = 1
print ('digit is',digit)

var = num
for i in range(digit):
    n = var // 10
    print (var - n*10)
    var = n
参考答案.png
1.2 打印一个边长为 n 的正方形
var = int(input ('>>>'))
for i in range(var):
    if i == 0 or i == var-1:
        print ('@'*var)
    else:
        print ('@'+' '*(var-2)+'@')
参考答案.png
1.3 求 100 内所有奇数的和
sum = 0
for i in range(100):
    if i & 1:
        sum += i   # 与 sum = sum + i 相同
    else:
        continue
else:
    print (sum)
奇数和.png
sum = 0
for i in range(101):
    if i & 1:
        continue
    else:
        sum += i
else:
    print (sum)
偶数和.png
sum = 0
for i in range(1,100,2):
    sum += i
else:
    print (sum)
1.4 判断学生成绩,成绩等级 A - E。其中,90 分以上为 'A',80 - 89 分为 'B',70 - 79 分为 'C',60 - 69 分为 'D',60 分以下为 'E'
score = int(input('>>>'))
if score > 69:
    if score < 80:
        print ('C')
    elif score < 90:
        print ('B')
    else:
        print ('A')
else:
    if score < 60:
        print ('E')
    else:
        print ('D')
参考答案.png
1.5 求 1 到 5 阶乘之和
n = int(input('>>>'))
c = 1
x = 0
for i in range(1,n+1):
    c *= i
    x += c
else:
    print (x)
参考答案.png
1.6 给一个数,判断它是否是素数(质数)
x = int(input())
for i in range(2,x):
    if x % i == 0:
        print ('No')
        break
else:
    print ('Yes')
参考答案.png
1.7 打印九九乘法表
for i in range(1,10):
    for j in range(1,i+1):
        print (j,'*',i,'=',i*j,end='\t')
    else:
        print ()
for i in range(1,10):
    print(' '*7*(i-1),end='')
    for j in range(i,10):
        product = i*j
        if product < 10:
            end = '  '
        else:
            end = ' '
        print(str(i)+'*'+str(j)+'='+str(i*j),end=end)
    print()
九九乘法表.png 乘法表上半部分.png
1.8 输入两个数,比较大小后,从小到大升序打印
x = int (input ('>>>'))
y = int (input ('>>>'))
if x >= y:
    print (y,x)
else:
    print (x,y)
x = input ('1st: ')
y = input ('2nd: ')
print (y,x) if x>y else print (x,y)
参考答案.png 真值 if 条件 else 假值.png
1.9 给一个半径,求圆的面积和周长。(π = 3.14)
radius = int (input ('>>>'))   # radius,半径
pi = float (3.14)   # pi,圆周率
print ('perimeter is',radius * 2 * pi)   # perimeter,周长
print ('area is',pi * radius ** 2)   # area,面积
参考答案.png
1.10 输入 n 个数,求每次输入后的算数平均数
count = 0   # count,计数
summation = 0   # sum / summation,求和
while True:
    x = input ('quit enter F ,plz input a num ')
    if x != 'F':
        summation += int(x)
        count += 1
        print ('avg is',(summation // count))   # avg,平均数
    else:
        break
参考答案.png
1.11 打印菱形
行号    个数    前空格    总空格
 1       1       3         6
 2       3       2         4
 3       5       1         2
 4       7       0         0
 5       5       1         2
 6       3       2         4
 7       1       3         6
for i in range(-3,4):
    if i<0:
        prespace = -i
    else:
        prespace = i
    print (' '*prespace + '*'*(7-prespace*2))

# 精简版本
for i in range(-3,4):
    print (' '*(-i) + '*'*(7+i*2)) if i<0 else print (' '*i + '*'*(7-i*2))
参考答案.png 精简版本.png
1.12 打印对顶三角形
序号    对称序列    星号数    总空格    前置空格    后置空格
 1         3         7        0          0          0
 2         2         5        2          1          1
 3         1         3        4          2          2
 4         0         1        6          3          3
 5         1         3        4          2          2
 6         2         5        2          1          1
 7         3         7        1          0          0

# 可以看出,和签到空格、起终点有关
n = 7
e = n//2
for i in range(-e,n-e):
    prespace = -i if i<0 else i
    print (' '*(e-prespace) + '*'*(2*prespace+1))

# 精简
n = 7
e = n//2
for i in range(-e,n-e):
    print (' '*(e+i) + '*'*(2*(-i)+1)) if i<0 else print(' '*(e-i) + '*'*(2*i+1))
参考答案.png
1.13 打印闪电
行号    个数    前空格    后空格    总空格    数据
 1       1       3         3         6      -3
 2       2       2         3         5      -2
 3       3       1         3         4      -1
 4       7       0         0         0       0
 5       3       3         1         4       1
 6       2       3         2         5       2
 7       1       3         3         6       3
for i in range(-3,4):
    if i<0:
        print (' '*(-i) + '*'*(4+i))
    elif i>0:
        print (' '*3 + '*'*(4-i))
    else:
        print ('*'*7)
参考答案.png
1.14 斐波那契数列
print (0)
print (1)
a = 0
b = 1
while True:
    c = a + b
    if c > 100:
        break
    a = b
    b = c
    print (c)
# 方案一
i = 1
j = 1
count = 0
while True:
    i,j = j,i+j
    count += 1
    if count == 100:
        break
print (i)

# 方案二
a = 1
b = 1
index = 2
print ('{0},{1}'.format(0,0))
print ('{0},{1}'.format(1,1))
print ('{0},{1}'.format(2,1))
while True:
    c = a + b
    a = b
    b = c
    index += 1
    print ('{0},{1}'.format(index,c))
    if index == 101 :
        break
100 以内.png 101 项方案二.png 101 项方案一.png
1.15 猴子吃桃问题
total = x
    
       剩下

d1    x/2-1
d2    d1/2-1
d3    d2/2-1
...
d9    d8/2-1
d10   1
peach = 1
for i in range(9):
    peach = 2*(peach+1)
print (peach)   # 1534
上一篇下一篇

猜你喜欢

热点阅读