第一题:求5的阶乘

 # 方法1,递归
def jc(num):
if num == 1:
return 1
else:
return num*jc(num-1)
print(jc(5)) # 方法2,for遍历
def func(num):
sum = 1
for i in range(1,num+1):
sum*=i
return sum
func(5)
print(func(5))
 # 方法3,lambda表达式
# lambda不能调用数组,如列表。
# 这里需要借助一个函数去做(这个函数调用了lambda表达式作为参数,即需要使用高阶函数reduce#使用高阶函数,
# 需要调用一个模块# 将阶乘改成函数形式进行调用functools
from functools import reduce
print(reduce(lambda x,y:x*y,range(1,6)))
第二题:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
 if __name__ == '__main__':
s = input('please input a string:\n')
print ('the string has %d characters.' % len(s)) def func(a): #定义一个求字符串长度的函数
'求一个字符串的长度'
len=0
for i in a:
len+=1
return len
if __name__=='__main__': #main函数, __name__=='__main__'将函数私有化了,外部调用不了main下面的内容。 str_input=input('请输出一个字符串') #实现在main函数中输入字符串
str_len=func(str_input) #通过调用外部的函数func(a),并传递实际参数str_input,实现在main函数计算字符串长度。
print("输入字符串长度:", str_len)
第三题:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
 i = 0
for x in range(1,5):
for y in range(1,5):
for z in range(1,5):
if (x!=y) and (y!=z) and (z!=x):
i += 1
if i%4:
print("%d%d%d" % (x, y, z), end=" | ")
else:
print("%d%d%d" % (x, y, z))
print ("合计个数:",i)
第四题:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,
高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,
可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
 i = int(input('净利润:'))
arr = [1000000,600000,400000,200000,100000,0]#分成6段提成
rat = [0.01,0.015,0.03,0.05,0.075,0.1]#每段提成对应的税率
r = 0
for idx in range(0,6):#索引有6个数
if i>arr[idx]:
r+=(i-arr[idx])*rat[idx]
# print (r)
i=arr[idx]
print (r)
第五题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
 if __name__=="__main__":
x=1
i=1
while x!=0:
x = int((i+100)**0.5)
y = int((i+100+168)**0.5)
if x*x==(100+i) and y*y==(100+168+i):
print(i)
x = 0
i+=1
第六题:水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。
例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
 解法一:用a,b,c拼凑一个三位数
for a in range(1,10):
for b in range(0,10):
for c in range(0,10):
s1 = a*100+b*10+c
s2 = pow(a,3)+pow(b,3)+pow(c,3)
if s1==s2:
print('水仙花:%d'%s1) 解法二:直接定义i为水仙花数来求它的元素
for i in range(100,1000):
s = str(i)
if int(s[0])**3+int(s[1])**3+int(s[2])**3==i:
print('水仙花:',i) 解法三:用divmod根据余数和商来求出三位数
for n in range(100,1000):
m = n
sumValue = 0
while(m>0):
(m,r) = divmod(m,10)
sumValue +=r**3
if n ==sumValue:
print('水仙花:',n)
第七题:将一个正整数分解质因数,例如:输入90,打印出90=2*3*3*5
 import math
number = int(input("Enter a number: "))
list = []
def getChildren(num):
print('*' * 30)
isZhishu = True
i = 2
square = int(math.sqrt(num)) + 1
while i <= square:
if num % i == 0:
list.append(i)
isZhishu = False
getChildren(num / i)
i += 1
break
i += 1
if isZhishu:
list.append(num)
getChildren(number)
print(list)
第八题:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
 if __name__ == '__main__':

     a = [1,13,28,40,100,0]# 0 作为加入数字的占位符
print('原始列表:')
for i in range(len(a)):
print (a[i],)
number = int(input("插入一个数字:"))
end = a[4]
if number > end:
a[5] = number
else:
for i in range(5):
if a[i] > number:
temp1 = a[i]
a[i] = number
for j in range(i + 1,6):
temp2 = a[j]
a[j] = temp1
temp1 = temp2
break
print ('排序后列表:')
for i in range(6):
print (a[i],)
第九题: 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入
注意:第1个 for 循环,range()得从1开始计数,这样子第2个 for 循环一开始才能至少循环一次(如果 i = 0,那么 range(i) 就循环不起来了。
 # a = int(input('请输入数字a:'))
# count = int(input('请输入几个数相加:'))
# res = 0#初始化最终求解
# for i in range(1,count+1):#循环次数与输入的值一样,但从1开始循环
# t = 0#临时用的变量
# for j in range(i):
# t = t + 10**j#先计算10**0+10**1+....+10**j
# res = res +(a*t)#再计算a*t
# print(res)
第十题:找出1000以内的所有完数。什么是“完数”:
一个数如果恰好等于它的因子之和,这个数就称为”完数”。例如6=1+2+3.
 for i in range(2,1001):#遍历1000以内的所有数,从2开始
s = i #把取出的数赋值给另一个变量s,用于与所有因子作差,如果减去所有因子后结果为0,这个数是完数
for j in range(1,i): #查找因子
if i % j == 0: #找出因子
s -=j #与因子作差
if s == 0: #判断是否是完数
print(i) 完善写法:
for i in range(2, 1001):
k = [] # 用于收集一个数的所有因子
n = -1 #
s = i
for j in range(1, i):
if i % j == 0:
n += 1
s -= j
k.append(j) # 收集所有因子 if s == 0:
print(i, ":") # 打印完数
for j in range(n): # 遍历完数的所有因子
print(str(k[j]), end='+ ') # 打印出所有的因子
print(k[n]) # 打印

python常见循环练习的更多相关文章

  1. Python常见的错误汇总

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 错误: [错误分析]第二个参数必须为类,否则会报TypeError,所以正确的应 ...

  2. Python常见十六个错误集合,你知道那些?

    使用python会出现各种各样的错误,以下是Python常见的错误以及解决方法. 1.ValueError: 'Conv2d_1a_3×3' is not a valid scope name 这个是 ...

  3. Python for循环学习总结笔记

    循环是任何语⾔的⼀个必备要素.同样地,for循环就是Python的⼀个重要组成部分.然而还有⼀些内容是初学者常常忽视的.下面是Python for循环学习总结笔记,一起来查漏补缺吧!         ...

  4. Python的循环

    循环是一个结构,导致一个程序要重复一定的次数 条件循环也一样,当条件变为假,循环结束 For循环 在python for循环遍历序列,如一个列表或一个字符. for循环语法:   ——for iter ...

  5. python常见的特异点

    编码问题 Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错.解决方法为只要在文件开头加入 # -*- coding: UTF-8 -*- 或 ...

  6. python基础-循环

    循环 循环 要计算1+2+3,我们可以直接写表达式: >>> 1 + 2 + 3 6 要计算1+2+3+...+10,勉强也能写出来. 但是,要计算1+2+3+...+10000,直 ...

  7. python常见排序算法解析

    python——常见排序算法解析   算法是程序员的灵魂. 下面的博文是我整理的感觉还不错的算法实现 原理的理解是最重要的,我会常回来看看,并坚持每天刷leetcode 本篇主要实现九(八)大排序算法 ...

  8. python的循环和选择

    一.python的选择结构: python的选择结构有两种选择结构一种是单选择(if...else)另一种则是多选择结构(if ...elif...elif) 下面用代码来实现: 1.if....el ...

  9. 在oj中Python的循环输入问题解决

    在oj中Python的循环输入问题解决 在makefile中定义逗号字符串和空格字符串 在linux服务器上面部署javaweb项目jar包 数据结构与算法之栈(Java与Python实现) 在oj中 ...

随机推荐

  1. 开始Flask项目

    新建Flask项目. 设置调试模式. 理解Flask项目主程序. 使用装饰器,设置路径与函数之间的关系. 使用Flask中render_template,用不同的路径,返回首页.登录员.注册页. 用视 ...

  2. ubuntu 16.04 编译安装 trl8291cu系列 无线网卡驱动

    1 先 下载git包 和相关编译工具 sudo apt-get update sudo apt-get install git linux-headers-generic build-essentia ...

  3. 【oracle入门】Oracle数据库11g企业版主要优点

    高可靠性.能够尽可能地放置服务器故障.站点故障和人为错误的发生. 高安全信息.可以利用行级安全性.细粒度审计.透明的数据加密和数据的全面会议确保数据安全和遵守法规. 更好的数据管理.轻松管理最大型数据 ...

  4. Power BI Desktop 新年快乐!

    新年快乐 2018年是Power BI 多产的一年!更新发布的功能就超过150多个,真是相当的强大! 为了庆祝这一成功的一年,Power BI官方团队制作了一个有趣的视频,展示他们对2018年最喜欢的 ...

  5. Binary Search Tree Learning Summary

    BST Definition BST is short for Binary Search Tree, by definition, the value of right node is always ...

  6. datePecker时间控件区间写法

    成交时间: <input type="text" onclick="WdatePicker({dateFmt:'yyyy-MM-dd',maxDate:'#F{$d ...

  7. 关于$\mathcal{D}(0,1)$上的一个有趣结论

    [转载请注明出处]http://www.cnblogs.com/mashiqi 2017/02/20 在$\mathcal{D}(0,1)$上取定$\varphi_0 \in \mathcal{D}( ...

  8. 冒泡排序到k趟

    浙大pat题目 将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们.通过一遍扫描,则最后一个元素必定是最大的元素.然后用同样的方 ...

  9. tcpkill,干掉tcp连接

    场景 当我们需要在不重启服务的情况下断开某一个TCP长连接时,tcpkill工具就非常有用.比如我们要测试某个长连接断开后程序自动重连的情况. tcpkill安装 这个连接的作者改了一下tcpkill ...

  10. Vue遇到的问题

      1.<a v-bind:[attributeName]="url"> ... </a> 报错,原因 attributeName应该属于关键字,不能用 2 ...