第一周 循环练习题

  1. 判断101-200之间有多少个素数,并输出所有素数。
for i in range(100, 201):
    for j in range(2, int(i**0.5)+1):
        if i % j == 0:
            break
    else:
        print(i, end='  ')

# 运行结果
'''
101  103  107  109  113  127  131  137  139  149  151  157  163  167  173  179  181  191  193  197  199  
'''
  1. 求整数1~100的累加值,但要求跳过所有个位为3的数。
sum = 0
for i in range(1, 101):
    if i % 10 != 3:
        sum += i
print(sum)

# 运行结果
'''
4570
'''
  1. 有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数
y, y_1 = 1, 1
for i in range(1, 21):
    y_c = y
    y += y_1
    y_1 = y_c
print(y, '/', i, sep='')

# 运行结果
'''
17711/20
'''
def fib(n):
    if n <= 1:
        return n
    else:
        return fib(n-1) + fib(n-2)
fib(22)

# 运行结果
'''
17711
'''
  1. 写程序计算 n 的阶乘 n! 的结果
n = int(input('请输入n的值:'))
product = 1
for i in range(1,n+1):
    product *= i
print(n, product)

# 运行结果
'''
10 3628800
'''
  1. 求1+2!+3!+…+20!的和
result = 0
product = 1
for j in range(1, 21):
    product *= j
    result += product
print(result)

# 运行结果
'''
2561327494111820313
'''
  1. 写程序求表达式 a + aa + aaa + aaaa+ … 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)

    例如:a为3, n为5的时候: 3 + 33 + 333 + 3333 + 33333

a, n, sum = 5, 5, 0
for i in range(1, n+1):
    num = 0
    for j in range(0, i):
        num += a * 10 ** j
    sum += num
    print(num, end='  ')
print()
print(sum)

# 运行结果
'''
5  55  555  5555  55555  
61725
'''
  1. 控制台输出三角形
a.根据n的值的不同,输出相应的形状
n = 5时             n = 4
*****               ****
****                ***
***                 **
**                  *
*
n = 5
for i in range(5, 0, -1):
    print('*'*i)

# 运行结果
'''
*****
****
***
**
*
'''
b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5               n = 7
   *                    *
   ***                  ***
*****                *****
                     *******
n = 7
for i in range(1, n+1, 2):
    print(' '*((n-i)//2), '*'*i, sep='')

# 运行结果
'''
   *
  ***
 *****
*******
'''
c. 根据n的值的不同,输出相应的形状
n = 4
   1
   121
   12321
1234321

n = 5
      1
   121
   12321
   1234321
123454321
n = 5
for i in range(1, n+1):
    print(' '*(n-i), sep='', end='')
    for j in range(1, i+1):
        print(j, end='')
    for k in range(i, 1, -1):
        print(k-1, end='')
    print()

# 运行结果
'''
    1
   121
  12321
 1234321
123454321
'''
  1. 小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?
for soap in range(0,51,5):
    i = (100-soap*2)//15+1
    for shampoo in range(i):
        toothbrush = (100-soap*2-shampoo*15)//5
    print(shampoo, soap, toothbrush)

# 运行结果
'''
6 0 2
6 5 0
5 10 1
4 15 2
4 20 0
3 25 1
2 30 2
2 35 0
1 40 1
0 45 2
0 50 0
'''
  1. 一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?
paper = 0.00008
count = 0
height = 0
while height <= 8848.13:
    height = paper * 2**count
    count += 1
print(count,height)

# 运行结果
'''
28 10737.41824
'''
  1. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
first = 1
second = 0
count = 1
for i in range(1,31):
    count = second + first
    print(i, count, ' | ', end='')
    first = second
    second = count

# 运行结果
'''
1 1  | 2 1  | 3 2  | 4 3  | 5 5  | 6 8  | 7 13  | 8 21  | 9 34  | 10 55  | 11 89  | 12 144  | 13 233  | 14 377  | 15 610  | 16 987  | 17 1597  | 18 2584  | 19 4181  | 20 6765  | 21 10946  | 22 17711  | 23 28657  | 24 46368  | 25 75025  | 26 121393  | 27 196418  | 28 317811  | 29 514229  | 30 832040  | 
'''
  1. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num = 125
print(num, '=', sep='', end='')
n = 1
for i in range(2, int(num**0.5)+1):
    for j in range(2, int(i**0.5)+1):
        if i % j == 0:
            break
    else:
        while num % i == 0:
            num //= i
            if n == 1:
                print(i, end='')
            else:
                print('×', i, sep='', end='')
            n += 1

# 运行结果
'''
125=5×5×5
'''
  1. 某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值
num = int(input('请输入一个四位数: '))
one = num // 1000
two = num // 100 % 10
three = num % 100 // 10
four = num % 10
one, four = (four+5)%10, (one+5)%10
two, three = (three+5)%10, (two+5)%10
print(num)
print(one, two, three, four, sep='')

# 运行结果
'''
6923
8741
'''
  1. 将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。
num = 90
print(num, '=', sep='', end='')
n = 1
for i in range(2, int(num**0.5)+1):
    for j in range(2, int(i**0.5)+1):
        if i % j == 0:
            break
    else:
        while num % i == 0:
            num //= i
            if n == 1:
                print(i, end='')
            else:
                print('×', i, sep='', end='')
            n += 1

# 运行结果
'''
90=2×3×3×5
'''
  1. 本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。
money, years = 10000, 5
for i in range(years):
    money += money*0.003
print(money)
# 10000*(1.003)**years

# 运行结果
'''
10150.90270405243
'''
  1. 输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)
num = int(input('请输入一个整数:'))
print(num)
sum = 0
while num % 10 != 0:
    i = num % 10
    num //= 10
    sum += i
print(sum)

# 运行结果
'''
3623626
28
'''
  1. 求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)
num_1 = 8
num_2 = 12
a, b = 0, 0
if num_1 > num_2:
    num_1, num_2 = num_2, num_1
for i in range(1,num_1+1):
    if num_1 % i == 0 and num_2 % i == 0:
        a = i
for j in range(num_2, num_1*num_2+1):
    if j % num_1 == 0 and j % num_2 == 0:
        b = j
        break
print(a,b)

# 运行结果
'''
4 24
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的for循环练习题如下所示: ```python 1. a, n = eval(input("请输入两个整数,用逗号分隔")) 2. sum = a 3. count = 0 4. for i in range(0, n): 5. count = count + sum 6. sum = sum * 10 + a 7. print(count) ``` 这段代码是一个简单的循环练习题,它首先要求用户输入两个整数,然后使用for循环计算这两个整数的加和。在每次循环中,将当前的和与第一个输入的整数相加,并将结果赋值给和。然后,将和乘以10并加上第一个输入的整数,以便在下一次循环中使用。最后,打印出计算得到的结果。这个练习题的目的是帮助学习者熟悉for循环的使用,并加深对变量赋值的理解。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Python 技能树练习题 《现代集成开发环境(IDE)》源码](https://download.csdn.net/download/wenrui7868/88275289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Python练习—循环](https://blog.csdn.net/weixin_30898109/article/details/99566675)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值