有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

def test_01():

count = 0

num_lst = []

for i in range(1, 5):

for j in range(1, 5):

for k in range(1, 5):

if (i != j) & (j != k) and (i != k):

count = count + 1

print("第", count, "个不重复数", ":", i * 100 + j * 10 + k)

num_lst.append(i * 100 + j * 10 + k)

return num_lst

企业发放的奖金根据利润提成。利润(profit)低于或等于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%提成,从键盘输入当月利润profit,求应发放奖金总数?

程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型

def test_02(profit):

rate = [0.1, 0.075, 0.05, 0.03, 0.015, 0.01]

amount = [10, 20, 40, 60, 100]

sum0 = amount[0] * rate[0]

sum1 = sum0 + (amount[1] - amount[0]) * rate[1]

sum2 = sum1 + (amount[2] - amount[1]) * rate[2]

sum3 = sum2 + (amount[3] - amount[2]) * rate[3]

sum4 = sum3 + (amount[4] - amount[3]) * rate[4]

if profit <= 10:

return profit * rate[0]

elif (profit > 10) and (profit <= 20):

return sum0 + (profit - amount[0]) * rate[1]

elif (profit > 20) and (profit <= 40):

return sum1 + (profit - amount[1]) * rate[2]

elif (profit > 40) and (profit <= 60):

return sum2 + (profit - amount[2]) * rate[3]

elif (profit > 60) and (profit <= 100):

return sum3 + (profit - amount[3]) * rate[4]

elif profit > 100:

return sum4 + (profit - amount[4]) * rate[5]

else:

print("输入金额错误!")

def test_02_1():

i = int(input("净利润:"))

arr = [1000000, 600000, 400000, 200000, 100000, 0]

rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]

r = 0

for idx in range(0, 6):

if i > arr[idx]:

# print(idx)

r += (i - arr[idx]) * rat[idx]

# print((i - arr[idx]) * rat[idx])

i = arr[idx]

print(r)

return r

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

def test_03():

num_lst = []

for number in range(1, 9999):

number1 = number + 100

number2 = number + 100 + 168

for i in range(int(math.sqrt(number1)), number1):

if i * i == number1:

for j in range(int(math.sqrt(number2)), number2):

if j * j == number2:

# print(number)

num_lst.append(number)

return num_lst

输入某年某月某日,判断这一天是这一年的第几天?

if __name__ == '__main__':

months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

date = input("year-day:")

year = int(date.split("-")[0])

month = int(date.split("-")[1])

day = int(date.split("-")[2])

print(year, month, day)

# 判断是闰年还是平年

if (year % 4 == 0) or (year % 400 == 0) and (year % 100 != 0):

months[1] = 29

print(year, "是闰年")

else:

print(year, "是平年")

print(months)

s1 = 0

if month == 1:

s1 = day

print(date, "是第", s1, "天")

else:

for i in months[:month - 1]:

s1 = s1 + i

s2 = s1 + day

print(date, "是本年度第", s2, "天")

输入三个整数x,y,z,请把这三个数由小到大输出

def f1(x, y, z):

lst = [x, y, z]

lst.sort()

print(lst)

# 常规解法

def Verify_max(x, y, z):

lst = []

lst.append(x)

lst.append(y)

lst.append(z)

lst.sort()

for e in lst:

print(e)

# 解法 2

def V_max(a, b, c):

m = max(a, b, c)

l = min(a, b, c)

for i in [a, b, c]:

if i not in [m, l]:

z = i

for e in [l, z, m]:

print(e)

# 最简洁

def Sort_L(a, b, c):

l = sorted((a, b, c))

for i in l:

print(i)

def f2():

lst = []

for i in range(0, 3):

x = int(input("integer:"))

lst.append(x)

lst.sort()

print(lst)

题目:斐波那契数列。

程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。

在数学上,费波那契数列是以递归的方法来定义:

F0=0 (n=0)

F1=1 (n=1)

Fn = F(n-1) + F(n-2) (n>=2)

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....

def test_06(n):

a, b = 1, 1

for i in range(n - 1):

a, b = b, a + b

return a

def test_06_1(n):

if n == 1 or n == 2:

return 1

return test_06_1(n - 1) + test_06_1(n - 2)

def test_06_2(n):

if n == 1:

return [1]

if n == 2:

return [1, 1]

fibs = [1, 1]

for i in range(2, n):

fibs.append(fibs[-1] + fibs[-2])

return fibs

7.将一个列表的数据复制到另一个列表中

def f(lst1):

lst2 = lst1[:]

return lst2

输出 9*9 乘法口诀表。

def func():

for i in range(1, 10):

for j in range(1, 10):

print(" %d*%d=%d " % (i, j, i * j), end="")

if i == j:

print("")

break

def func2():

for i in range(1, 10):

print()

for j in range(1, i + 1):

print("%d*%d=%d" % (i, j, i * j), end=" ")

def func3():

for i in range(1, 10):

for j in range(1, i + 1):

v = i * j

print("%d*%-1d=%-4d" % (i, j, v), end=" "),

if i == j:

print('')

暂停一秒输出。

import time

if __name__ == '__main__':

myD = {1: 'a', 2: 'b'}

for key, value in dict.items(myD):

print(key, value)

time.sleep(1) # 暂停 1 秒

暂停一秒输出,并格式化当前时间

import time

if __name__ == '__main__':

print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

# 暂停一秒

time.sleep(1)

print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())))

题目:用*号输出字母C的图案。

def Output():

s = ' '

for i in range(8, -1, -2):

print(s * i + '*')

print('*')

for i in range(1, 8, 2):

print(s * i + '*')

判断101-200之间有多少个素数,并输出所有素数

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

def func():

num_lst = []

for i in range(101, 200):

for j in range(2, int(math.sqrt(i))):

if i % j == 0:

num_lst.append(i)

break

else:

continue

lst = []

for j in range(101, 200):

if j not in num_lst:

lst.append(j)

return lst

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

def func():

for n in range(100, 1000):

i = n / 100

j = n / 10 % 10

k = n % 10

if n == i ** 3 + j ** 3 + k ** 3:

print(n)

将一个正整数分解质因数。例如:输入90,打印出90=233*5。

def func(n):

num = n

lst = [] # 存放质因数的列表

for i in range(int(n / 2) + 1): # 判断次数仅需该数字的一半多1次

for j in range(2, n):

if n % j == 0: # 若能整除

n = n // j # 除以质因数后的n重新进入判断,注意应用两个除号,使n保持整数

lst.append(j) # 则表示i是质因数

break # 找到1个质因数后马上break,防止非质数却可以整除的数字进入质因数列表

if len(lst) == 0: # 若一个质因数也没有

print('该数字没有任何质因数。')

else: # 若至少有一个质因数

lst.append(n) # 此时n已被某个质因数整除过,最后一个n也是其中一个质因数

lst.sort() # 排下序

print('%d=%d' % (num, lst[0]), end='') # 打印头两个值

for i in range(1, len(lst)):

print('*%d' % lst[i], end='') # 打印后面的值

题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

def func():

score = int(input('输入分数:\n'))

if score >= 90:

grade = 'A'

elif score >= 60:

grade = 'B'

else:

grade = 'C'

print('%d 属于 %s' % (score, grade))

题目:输出指定格式的日期。

import datetime

if __name__ == '__main__':

# 输出今日日期,格式为 dd/mm/yyyy。更多选项可以查看 strftime() 方法

print(datetime.date.today().strftime('%d/%m/%Y'))

# 创建日期对象

day = datetime.date(1941, 1, 5)

print(day.strftime('%d/%m/%Y'))

# 日期算术运算

nextDay = day + datetime.timedelta(days=1)

print(nextDay.strftime('%d/%m/%Y'))

# 日期替换

firstDay = day.replace(year=day.year + 1)

print(firstDay.strftime('%d/%m/%Y'))

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

def func():

s = input("请输入一个字符串:")

letters = 0

spaces = 0

digits = 0

others = 0

i = 0

while i < len(s):

c = s[i]

if c.isalpha():

letters += 1

elif c.isspace():

spaces += 1

elif c.isdigit():

digits += 1

else:

others += 1

i += 1

print("char=%-2d, space=%-2d,digit=%-2d,others=%-2d" % (letters, spaces, digits, others))

# 方法2

def func2():

s = input("请输入一个字符串:")

letters = 0

spaces = 0

digits = 0

others = 0

for c in s:

if c.isalpha():

letters += 1

elif c.isspace():

spaces += 1

elif c.isdigit():

digits += 1

else:

others += 1

print("char=%-2d, space=%-2d,digit=%-2d,others=%-2d" % (letters, spaces, digits, others))

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

def func():

a = input('输入数字>>>')

count = int(input('几个数字相加>>>'))

ret = []

for i in range(1, count + 1):

ret.append(int(a * i)) # 字符乘以数字将会是重复字符,将字符再转换为整形

print(ret[i - 1])

print(sum(ret))

"""

方法二

"""

def func1():

a = input('输入数字>>>')

count = int(input('几个数字相加>>>'))

res = 0 # 根据count获取值的长度

lst = [] # 每位数的值置列表,然后计算列表中的和

for i in range(1, count + 1): # 循环次数与输入的值一样,但从1开始循环

if i == 1:

res = int(a)

lst.append(res)

else:

res += 10 ** (i - 1) * int(a)

lst.append(res)

print(lst)

res_value = 0

for i in lst:

res_value += int(i)

print(res_value)

题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

def test_func():

cst = [] # 完数列表

for i in range(1, 1000):

print("--:", i)

ast = [] # 所有因子列表

bst = [] # 不重复因子列表

for j in range(1, i):

if i % j == 0:

ast.append(j)

continue

# print("所有因子:", ast)

for e in ast:

if e not in bst:

bst.append(e)

print("不重复因子:", bst)

# 判断是否是完数

res = 0 # 计算因子之和

for v in bst:

res += int(v)

if res == i: # 判断是否完数

cst.append(i)

print("----------------------------------")

print("1000以内的完数列表:", cst)

题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

def test_func(n):

lst = [] # 反弹高度的列表统计

result = 0.00 # 共经过多少米

h = 100

for i in range(1, n + 1):

if i == 1: # 第一次下落100

lst.append(h)

else:

lst.append(h / 2 ** (i - 1) * 2)

print(lst)

for i in lst:

result += i

return result

# 每次反弹的高度,每次落地后反跳回原高度的一半

def rebound(n):

return 100 / (2 ** n)

题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃

了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半多一个。

到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少

最佳方法(递归)

def Calc_peach(N):

if N == 1:

return 1

else:

return (1 + Calc_peach(N-1)) * 2

常规方法一

def func(day):

S = 1

for i in range(day, 1, -1):

S = (S + 1)*2

print S

常规方法二

x2 = 1

for day in range(9,0,-1):

x1 = (x2 + 1) * 2

x2 = x1

print x1

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

方法一

for a in ['x','y','z']:

for b in ['x', 'y', 'z']:

for c in ['x', 'y', 'z']:

if(a!=b)and(b!=c)and(c!=a) and (a!='x') and (c!='x') and (c!='z'):

print('a和%s比赛,b和%s比赛,c和%s比赛' %(a,b,c))

方法二

for i in range(ord('x'),ord('z') + 1):

for j in range(ord('x'),ord('z') + 1):

if i != j:

for k in range(ord('x'),ord('z') + 1):

if (i != k) and (j != k):

if (i != ord('x')) and (k != ord('x')) and (k != ord('z')):

print ('order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k)))

方法三

import itertools

A = ["a", "b", "c"]

B = ["x", "y", "z"]

team = [] # 存储比赛名单

rankB = [list(each) for each in itertools.permutations(B)] # 将对手的全部组合方式列出来

while True:

flag = 0

team = list(zip(A, B)) # 匹配选手

print(team)

for each in team:

if (("a" in each) and ("x" in each)) or (("c" in each) and (("x" in each) or ("z" in each))): # 判断是否符合对阵要求

flag = 1 # 如不符合则打个标记

break

if flag:

B = rankB.pop() # 改变一下对手位置

else:

break

for v1, v2 in team:

print("%s 对阵 %s" % (v1, v2))

打印出如下图案(菱形):

image.png

for i in range(1, 8, 2):

print(' ' * (4 - (i + 1) //2) + '*' * i)

for i in range(5, 0, -2):

print(' ' * (4 - (i + 1) // 2) + '*' * i)

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

def func(a,b,N):

if N == 1:

return float(a) / b

else:

a = a + b

b = a - b

return float(a) / b + func(a ,b ,N-1)

题目:求1+2!+3!+...+20!的和。

n = 0

s = 0

t = 1

for n in range(1,21):

t *= n

s += t

print( '1! + 2! + 3! + ... + 20! = %d' % s)

利用递归方法求5!

'''

题目:利用递归方法求5!

'''

def func(N):

if N == 1:

return 1

else:

return N * func(N-1)

if __name__ == "__main__":

N = int(raw_input("Please enter an num: "))

res = func(N)

print "res is : %r" %res

python基础100_python基础100题相关推荐

  1. 2011计算机等级考试二级c语言公共基础教程.doc,2011年全国计算机等级考试二级c语言公共基础知识复习100题及答案.doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp资格/认证考试&nbsp>&nbsp计算机等级考试 2011年全国计算机等级考试二级c语言公 ...

  2. Java入门基础及面试100题--初入门

    Java入门基础及面试100题 注:适合应届毕业生或java初入门者 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程, ...

  3. 两万多字诠释python最经典基础算法之100题【内含思路、程序和答案】【python初学者必备】

    前言: 本文为最最基础的python基础算法题目.思路和答案,适合python初学者使用,可以当作python入门算法工具书,虽然不具有高深的算法,但是都是企业级算法用的频率最多的,这也是学好高级算法 ...

  4. 输入48个数字从低到高c语言程序,计算机应用基础选择精选100题

    选择题精选 1. 目前人们普遍使用的电子计算机是() A.数字电子计算机 B.模拟电子计算机 C.数字模拟混合电子计算机 D.优化电子计算机 2. 20世纪50年代到60年代,3. 电子计算机的功能元 ...

  5. Python 面试实训 100 题,哪道难住了你?

    编程语言虽然不是自然语言,细细琢磨的话,其实在很多方面也是符合传统语言学(linguistics)规律的.比如,编程语言也讲究词汇学(关键字),结构学(程序结构),句法(语法),语义(代码功能)等:在 ...

  6. 【python】python基础测试100题

    python基础面试测试100题 Q1.什么是Python? Q2.Python的主要功能是什么? Q3.Python中支持的数据类型有哪些? Q4.列表和元组有什么区别? Q5.什么是Python模 ...

  7. python零基础实例-零基础学习Python开发练习100题实例(1)

    零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2864浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...

  8. python基础代码事例-零基础学习Python开发练习100题实例(2)

    零基础学习Python开发练习100题实例(2) 2018-02-26 13:11:39 1934浏览 11.题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个 ...

  9. python入门经典100题-零基础学习Python开发练习100题实例(1)

    零基础学习Python开发练习100题实例(1) 2018-02-25 09:37:59 2854浏览 1.题目:有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? 程序 ...

最新文章

  1. 记录,一些jar包的作用
  2. 抓包工具Wireshark基本介绍和学习TCP三次握手
  3. php xml写入数据库中,PHP读取xml并写入数据库示例
  4. C++利用访函数进行选择排序
  5. bootstrap 右对齐样式_Bootstrap的文本处理
  6. 实验2(第二章课后习题)
  7. 数据结构专题二:2.6链表删除结点
  8. html标签之常用标签
  9. 搞不清FastCgi与PHP-fpm之间是个什么样的关系
  10. 满足客户的需求是要有前提的!
  11. c语言的缺陷与陷阱,C语言 宏陷阱与缺陷
  12. 微服务数据库分库设计解决方案(跨库关联查询、分布式事务处理)
  13. 数字图像处理之matlab大作业:美图秀秀
  14. 智慧医疗整体解决方案
  15. 2015年至2017年的国产电影圈的数据分析
  16. U3D教程多摄像机协同运行
  17. 自媒体:我为什么要写一篇关于睡眠的文章?
  18. 音频频谱显示-基于fmod设计音乐播放器并动态显示频谱图(二)
  19. Superpixel_Segmentation_With_Fully_Convolutional_Networks ---CVPR_2020_paper(翻译)
  20. 高数教材班复习Hint(1.1-1.7)

热门文章

  1. python中遇到循环import即circular import的问题原理剖析及解决方案
  2. HTTP和HTTPS的请求和响应
  3. python 时间函数 毫秒_利用python进行播放音频与录音,骚操作!
  4. Redis系列教程(二):详解Redis的存储类型、集群架构、以及应用场景
  5. 论文浅尝 | GraphSAINT—基于图采样的归纳学习方法
  6. 论文浅尝 | 利用知识图谱嵌入和图卷积网络进行长尾关系抽取
  7. Android官方开发文档Training系列课程中文版:后台服务之IntentService的使用
  8. 从源码说说dispatchTouchEvent与onTouchEvent的关系以及OnTouchListener的用法
  9. Exploiting the Syntax-Model Consistency for Neural Relation Extraction(关系抽取,语法模型,跨领域关系抽取
  10. 【转】常用数学函数篇(Linux c)