python基础100_python基础100题

有四个数字: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))

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

12841d4d99e8?utm_campaign

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489824.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle数据库启动

遇到个白痴问题&#xff0c;放假停电&#xff0c;回来时启动数据库&#xff0c;发现无法进入oracle管理员界面。 如下输入&#xff0c;但是显示的命令无效。 [oraclecrm001 database]$ sqlplus / as sysdba bash: sqlplus: command not found 后来查百度知道问题的原因&#xf…

图灵测试还重要吗?

撰文丨Harry Collins&#xff08;卡迪夫大学社会学教授&#xff09;来源丨原理&#xff08;ID&#xff1a;principia1687&#xff09;1我们正在步入人工智能时代。随着人工智能程序越来越擅长像人类般行事&#xff0c;我们也越来越多地面临这样一个问题&#xff1a;人类的智能是…

mysql 禁止使用enum_MySQL慎用 ENUM 字段

前言&#xff1a;在网上看了很多文章&#xff0c;大家都是推荐 MySQL 要慎用 ENUM 字段&#xff0c;但是原理感觉还是有点模糊。今天我们就从官网来818这些东西1、关于 ENUM 迁移的问题&#xff1f;这里引用别人的一段话&#xff1a;但ENUM带来的问题也不少&#xff0c;比如数据…

2019年雁栖湖会议重大科学问题面向全球发布

来源&#xff1a;中国科学杂志社10月13日&#xff0c;由中国科学院学部和北京市政府联合举办的2019年度雁栖湖会议在北京怀柔开幕。中国科学院副院长张亚平、北京市委副秘书长郑登文以及来自国内外免疫学领域的院士、著名专家学者和中国科学院大学、中国科学院微生物所的师生等…

vscode怎么安装python包_vscode如何安装python

vscode安装python的方法&#xff1a; 1、在vscode的扩展中输入"ext install python"安装python插件打开VScode&#xff0c;Ctrlp 输入 "ext install python"&#xff0c;搜索时间可能会比较长 安装过程不能停止&#xff0c;否则重新安装&#xff1b;2、在配…

mysql关于日期的函数_MySQL中关于日期函数汇总

实际应用SELECT NOW(),DATE_FORMAT(NOW(),%Y-%m-%d) %Y-%m-%d;年月日时间模块小时分钟秒周%X 年&#xff0c;其中的星期日是周的第一天&#xff0c;4 位&#xff0c;与 %V 使用%x 年&#xff0c;其中的星期一是周的第一天&#xff0c;4 位&#xff0c;与 %v 使用%Y 年&#xff…

《 百度大脑AI技术成果白皮书》,介绍百度大脑5.0,附48页PDF下载

来源&#xff1a;专知【导读】百度大脑是百度AI集大成者&#xff0c;自2010年起开始积累基础能力&#xff0c;2019年升级为5.0&#xff0c;成为软硬件一体的AI大生产平台。百度发布《 百度大脑AI技术成果白皮书》&#xff0c;详细介绍了百度大脑5.0在基础层、感知层、认知层、平…

AT91SAM9260EK-38k产生原理

9260内部有5个内部计数器&#xff0c;分别为TIMER_CLOCK1 --- TIMER_CLOCK5。通过这5个时钟可以为各种内部设备提供时钟基准。 其中&#xff0c;红外发射38K方波&#xff0c;是通过CLOCK1计数产生。 配置寄存器如下 //选择TC通道 __sys_reg(AT91_PMC_PCER) 1 <<…

telegraf输出MySQL_Grafana+influxdb+telegraf初探-快速监控主机与mysql

一、安装1.1、配置influxdb yum源[rootnode ~]# cat /etc/yum.repos.d/influxdb.repo[influxdb]name InfluxDB Repository - RHEL \$releaseverbaseurl https://repos.influxdata.com/rhel/\$releasever/\$basearch/stableenabled 1gpgcheck 1gpgkey https://repos.influx…

新能源汽车产业深度研究报告:从2.0迈入3.0时代(113页)

来源&#xff1a;华西证券1.现状&#xff1a;发展节奏加快 电动化趋势明朗1.1.全球&#xff1a;新能源汽车加速渗透 中国占比持续提升 全球新能源汽车销量保持高速增长&#xff0c;十年 CAGR 达 99.4%。2008年新能源汽车 销量仅有 0.5 万辆&#xff0c;2011 年增至 4.9 万辆&am…

linux清除configure文件_在Linux操作系统下自动生成Makefile的方法

在Linux操作系统下进行开发&#xff0c;编写Makefile似乎是不可缺少的事情。但是对于一个比较大的工程&#xff0c;编写一个符合规范的Makefile并非易事。而且由于Makefile的各种显式&#xff0c;隐式规则&#xff0c;加之平时并不经常编写Makefile&#xff0c;导致我们写一个M…

mysql工作台安装使用_如何安装MySQL工作台?

问题描述在10.04或10.10上安装MySQL工作台不是问题&#xff0c;因为deb软件包可以在MySQL的网站上找到。但是没有11.04 deb包。那么&#xff0c;如何在11.04上安装MySQL工作台并在通过apt-get update向ubuntu提供更新时自动更新它。最佳解决办法从MySQL Workbench downloads页面…

华为轮值董事长郭平:打造VR/AR信息高速公路,支撑产业繁荣

来源&#xff1a;华为10月19日&#xff0c;以“VR让世界更精彩——VR5G开启感知新时代”为主题的2019世界VR产业大会在江西省南昌市举行。华为轮值董事长郭平发表了《打造VR/AR 信息高速公路&#xff0c;支撑产业繁荣》的主题演讲。郭平认为&#xff1a;VR/AR将成为5G时代的首批…

使用Ping命令解析主机名解析出来的是IPv6

如果你经常使用ping命令&#xff0c;并身处局域网&#xff0c;那么你肯定会有这样一个疑问&#xff1a;Ping计算机名为何是IPv6地址&#xff1f;问这个问题的人很少见&#xff0c;大多都是对网络知识稍有了解的人&#xff0c;所以才会闻到关于ping的问题&#xff0c;而且在这之…

cstring判断包含字符串_作为java程序员要知道的大厂常见的算法面试题:字符串的包含...

1.2 字符串的包含题目描述给定一长字符串a和一短字符串b。请问&#xff0c;如何最快地判断出短字符串b中的所有字符是否都在长字符串a中&#xff1f;请编写函数bool StringContain(string &a, string &b)实现此功能。为简单起见&#xff0c;假设输入的字符串只包含大写…

数字双胞胎技术和物联网如何帮助企业取得成功

来源&#xff1a;物联之家网&#xff08;iothome.com&#xff09;到2023年&#xff0c;全球数字双胞胎市场预计将达到150亿美元&#xff0c;2017年至2023年的复合年增长率&#xff08;CAGR&#xff09;为37&#xff05;。通用电气、IBM和微软等主要公司正在使用数字双胞胎技术来…

武汉凭什么被列为国家超大城市?

2014年11月&#xff0c;国务院发布国发2014第51号文件《关于调整城市规模划分标准的通知》&#xff0c;新标准将城市划分为五类七档&#xff0c;其中规定&#xff1a;城区常住人口1000万人以上的城市为超大城市。 根据该标准&#xff0c;此前北京、上海、天津、重庆、广州、深圳…

sql中排序序号_SQL 和 SPL 的有序运算对比

【摘要】 有序运算是指按照一定的次序对有序集合的成员进行计算。SQL 和 SPL 是大家比较熟悉的程序语言&#xff0c;本文将探讨对于有序运算问题&#xff0c;这两种语言的解决方案和基本原理。如何简便快捷的处理有序运算&#xff0c;这里为你全程解析&#xff0c;并提供 SQL 和…

前方高能!AI 大牛 LeCun 设想下一个新前沿:摈弃深度学习的所有概率技巧,改而掌握不断转变的能量值...

来源&#xff1a;云头条据深度学习界的领军人物Yann LeCun声称&#xff0c;AI的下一个发展阶段可能是摈弃深度学习的所有概率技巧&#xff0c;改而掌握不断转变的能量值。据说工程师&#xff08;以及一些科学家&#xff0c;但以工程师为主&#xff09;早在坐到板凳上搞设计之前…

2019年中国智能制造发展现状及趋势分析报告

来源&#xff1a;前瞻产业研究院未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&#xff0c;互联网和脑科学交叉研究机构。未来智能实验室的主要工作包括&#xff1a;建立AI智能系统智商评测体系&#xff0c;开展世界人工智能智商评测&#xff1b;开展互联网…