公众号: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('输入错误,请重新运行程序!')
结束语
本系列持续更新,学习使我快乐,让我们一起来学习,哈哈哈。感兴趣的朋友可以一起哈!