Python控制结构-实践(4/30)

在这里插入图片描述
公众号:DataLion

前言

Life is short,you need Python.本系列是学习Python的心酸历程!(持续更新) 以下是练习题部分。

1、使用for循环求1+2+3+100的和。
【输入格式】 null
【输出格式】 5050

a = 0
for i in range(1,101):
    a = a + i   #a += i
    
print(a)

1、使用while循环求1+2+3+100的和。
【输入格式】 null
【输出格式】 5050

a = 0
n = 1
while n<=100:
    a = a + n
    n += 1
print(a)

2、求1~100之间所有偶数之和
【输入格式】 null
【输出格式】 2550

a = 0
for i in range(2,101,2):
    a += i
print(a)

3、有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
【程序分析】可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
【输入格式】 null
【输出格式】 123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432

for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if( i != k ) and (i != j) and (j != k):
                print (i,j,k,sep='',end=' ')

4、设计“输出7的游戏”程序,打印1-100之间7的倍数的数字。
【输入格式】 null
【输出格式】 连续打印输出、且间隔为一个空格。 7 14 21 28 35 42 49 56 63 70 77 84 91 98

for i in range(1,101):
    if i%7==0:
        print(i,end=" ")

5、使用循环实现九九乘法表
【程序分析】分行与列考虑,共9行9列,i控制行,j控制列。
【输入格式】 null
【输出格式】 已 1x1=1 开始,第一行一个等式,第二行两个等式,依次增加至第九行九个等式。

for i in range(1, 10):
    for x in range(1, i + 1):
        print('%dx%d=%d\t' % (i, x, i * x), end=' ')
    print('')

#6、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

【程序分析】假设该数为 x。
1、则:x + 100 = n2, x + 100 + 168 = m2
2、计算等式:m2 - n2 = (m + n)(m - n) = 168
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。
【输入格式】 null
【输出格式】-99.0 21.0 261.0 1581.0

for i in range(1,85):
    if 168 % i == 0:
        j = 168 / i;
        if  i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :
            m = (i + j) / 2
            n = (i - j) / 2
            x = n * n - 100
            print(x,end=' ')

7、计算从1到100以内所有能同时被3,5整除的数的和并输出
【输入格式】 null
【输出格式】 315

a = 1
b = 0
while a < 100:
    if a%3==0 and a%5==0:
        b = b + a       
    a+=1
print(b)

8、编写程序用户登录程序且仅有三次机会(if和for)
【输入格式】 name = “admin” password = “123456”
【输出格式】 登录成功 / 登录失败,请重新输入!

name = "admin"
password = "123456"
i = 3
while i > 0:
    iname = input("请输入用户名:")
    ipassword = input("请输入用户密码")
    if iname == name and ipassword == password:
        print("登录成功")
        break
    else:
        print("登录失败,请重新输入!")
        i -= 1
else:
    print("您已经失败三次,无法登录了!")

9、斐波那契数列(Fibonacci sequence)
黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
【输入格式】 正整数 如 8
【输出格式】 第八个数字 21

n = int(input('请输入'))
# 当前的数:current = s1+s2
s1 = 1
s2 = 1
i = 3     # 位数的起始值是3,假设前两位都知道了:s1,s2=1
for i in range(3,n+1):
    # 根据前两个数的值,求出当前数的值
    current = s1+s2
    # 挪一次,为下次循环求下个值
    s1,s2 = s2,current
print(current)

10、猜数小游戏
1.系统随机生成一个1~100的数字;
2.用户共有无数次机会猜;
3.如果用户猜测数字大于系统给出的数字,打印"too big"
4.如果用户猜测数字小于系统给出的数字,打印"too small"
5.如果用户猜测的数字等于系统给出的数字,打印"恭喜中奖",
并退出循环

import random
a = random.randint(0,10)
print('产生的随机值是:%d'%a)
try:
    i = 0
    while 1:
        i += 1
        b = random.randint(0,10)
        if b > a:
            print('入数值%d大了。第%d次'%(b,i))
        elif b < a:
            print('入数值{}小了。第{}次'.format(b,i))
        else:
            print('第%d次回答正确!'%i)
            break
except:
    print('输入错误,请重新运行程序!')

结束语

本系列持续更新,学习使我快乐,让我们一起来学习,哈哈哈。感兴趣的朋友可以一起哈!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值