博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python练习
阅读量:3942 次
发布时间:2019-05-24

本文共 8184 字,大约阅读时间需要 27 分钟。

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

count=0for a in range(1,5):    for b in range(1,5):        for c in range(1,5):            if a!=b and a!=c and b!=c:                print('%d%d%d'%(a,b,c))                count+=1print('一共有%s个'%count)

企业发放的奖金根据利润提成。利润 (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 ,求应发放奖金总数

mon=float(input('请输入利润金额:'))mm=0.0#奖金if mon>0 and mon<=10:    mm=mon*0.1elif mon<20:    mm=1+(mon-10)*0.075elif mon<40:    mm=1+0.75+(mon-20)*0.05elif mon<60:    mm=1+0.75+1+(mon-40)*0.03elif mon<=100:    mm=1+0.75+1+1.2+(mon-60)+0.015elif mon>100:    mm=1+0.75+1+1.2+(mon-100)*0.01else:    print('输入错误')print('您的奖金为:%s'%mm)

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

i=1while 1:    if (i+100)**0.5%1==0 and (i+168)**0.5%1==0:        print(i)        break;    i+=1

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

# 思路:先判断是否为闰年,这关系到 2 月份的天数。# 之后再根据月份值把前几个月的天数累积加起来,最后再加上个“日”,就可以了。dat = input('请输入某年某月某日,格式为 yyyy-mm-dd :')y = int(dat[0:4])  #获取年份m = int(dat[5:7])  #获取月份d = int(dat[8:])  #获取日ly = Falseif y%100 == 0:  #若年份能被100整除    if y%400 == 0:  #且能被400整除        ly = True  #则是闰年    else:        ly = Falseelif y%4 == 0:  #其它情况下,若能被4整除    ly = True  #则为闰年else:    ly = Falseif ly == True:  #若为闰年,则2月份有29天    ms = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]else:    ms = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]days = 0for i in range(1, 13):  #从1到12逐一判断,以确定月份    if i == m:        for j in range(i-1):  #确定月份i之后,则将ms列表中的前i-1项相加            days += ms[j]        print('%s是该年份的第%s天。' % (dat, (days + d))) #最后再加上“日”,即是答案# 方法二import datetimey = int(input('请输入4位数字的年份:'))  #获取年份m = int(input('请输入月份:'))  #获取月份d = int(input('请输入是哪一天:'))  #获取“日”targetDay = datetime.date(y, m, d)  #将输入的日期格式化成标准的日期print(targetDay - datetime.date(targetDay.year-1, 12, 31))  #减去上一年最后一天,可得解# 方法三import datetimey = int(input('请输入4位数字的年份:'))  #获取年份m = int(input('请输入月份:'))  #获取月份d = int(input('请输入是哪一天:'))  #获取“日”targetDay = datetime.date(y, m, d)  #将输入的日期格式化成标准的日期dayCount = targetDay - datetime.date(targetDay.year - 1, 12, 31)  #减去上一年最后一天print('%s是%s年的第%s天。'% (targetDay, y, dayCount.days))

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

a=int(input('请输入A的值:'))b=int(input('请输入B的值:'))c=int(input('请输入C的值:'))if a>b:    a,b=b,aif a>c:    a,c=c,aif b>c:    b,c=c,bprint(a,b,c)

用*号输出字母 C 的图案

def printC():    print("    *****   ")    print("   **    *  ")    print("  **       ")    print("  **       ")    print("   **    *  ")    print("    *****   ")printC()

输出特殊图案,请在 c 环境中运行,看一看, Very Beautiful!

a=176b=219print('%c%c%c%c%c'%(b,a,a,a,b))print('%c%c%c%c%c'%(a,b,a,b,a))print('%c%c%c%c%c'%(a,a,b,a,a))print('%c%c%c%c%c'%(a,b,a,b,a))print('%c%c%c%c%c'%(b,a,a,a,b))

输出 9*9 口诀表

for i in range(1,10):	for j in range(1,i+1):		print(f'{j}*{i}={i*j}',end=' ')	print()

要求输出国际象棋棋盘

for i in range(8):	for j in range(8):		if((i + j) % 2 == 0):			print(chr(219)*2,end="") #因为要连续打印一行,所以不能使用默认的print函数		else:			print("  ",end="")	print("")

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

N=int(input("输入月份:"))r = [1,1,1]for f in range(4,N+1):	n = r[f-2] + r[f-3]	r.append(n)print(r)

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

l=[ ]for i in range(101,200):    for j in range(2,i-1):        if i % j==0:            break    else:            l.append(i)print(l)print('总数为:%d'%len(l))

打印出所有的“水仙花数” ,所谓“水仙花数”是指一个三位数,其各位数字立

方和等于该数本身。例如: 153 是一个“水仙花数”,因为 153=1 的三次方+5的三次方 +3的三次方

for i in range(100,1000):    a=int(i/100)    b=int((i-(a*100))/10)    c=int(i%10)    if i==(a**3+b**3+c**3):        print(i)

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

#将一个正整数分解质因数。例如:输入  90, 打印出 90=2* 3 * 3 * 5 。a=int(input('请输入一个数:'))l=[]i=2print(a,'=',end='')if a<1:   print('输入数字错误.')else:   while 1:       if a%i==0:           print(i,'*',end='')           l.append(i)           a=a//i           i=2       elif i==a-1:           print(i+1)           l.append(i+1)           break       else:           i+=1

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

a=int(input('请输入您的成绩:'))if a>=90 and a<=100:    print('A')elif a>60:    print('B')elif a>0:    print('C')else:    print('输出错误')

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

s=input('请输入一个字符串:')dic={'letter':0,'integer':0,'space':0,'other':0}for i in s:    if i > 'a' and i < 'z' or i > 'A' and i < 'Z':        dic['letter'] += 1    elif i in '0123456789':        dic['integer'] += 1    elif i == ' ':        dic['space'] += 1    else:        dic['other'] += 1print('统计字符串:',dic)print(dic)for i in dic:    print('%s='%i,dic[i])

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

a=int(input('请输入基数:'))b=int(input('请输入个数:'))sum=0for i in range(b):    sum+=a    a=a+a*10print(sum)

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

for i in range(1,1001):    sum = 0    l=[]    for m in range(1,i):        if i%m==0 and i!=m:            sum+=m            l.append(m)    if sum==i:        print(i,'its factors are',l)    l=[]

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

a=100sum=100for i in range(1,10):    sum+=a    a/=2print(sum)

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半, 又多吃了一个。 以后每天早上都吃了前一天剩下的一半多一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第一天共摘 了多少?

dl=1df=0for i in range(10):    df = 2 * (dl + 1)    dl = dfprint("第一天摘了%d个桃子:",df)

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

import itertoolsfor i in itertools.permutations('xyz'):    if i[0] != 'x' and i[2] != 'x' and i[2] != 'z':        print('a vs %s, b vs %s, c vs %s' % (i[0], i[1], i[2]))

打印出如下图案(菱形)

nu = 1  # 开始值k = 2   # 变量值while nu >= 0:    print(int((7 - nu) / 2) * ' ' + '*' * nu)    nu += k    if nu == 7:        k = -k

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

m=1n=2sum=0for i in range(20):    sum+=n/m    k=n    n+=m    m=kprint(sum)

求 1+2!+3!+…+20! 的和

def num(n):    if n==1:        return 1    return n*num(n-1)sum=0for i in range(1,5):    sum+=num(i)print(sum)

利用递归方法求 5!

def num(a):    if a==1:        return 1    return a*num(a-1)print(num(5))

利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出来

string =input("请输入一个字符串 :")def f(x):    if x == -1: #当变量的长度是-1时,返回        return ''    else:       #否则返回字符串的位置向后移1位,直到变量的长度为-1        return string[x] + f(x-1)print(f(len(string)- 1))

有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。

问第 4 个人岁 数,他说比第 3 个人大 2 岁。
问第三个人,又说比第 2 人大两岁。
问第 2 个人,说比第1个人大两岁。
最后问第一个人,他说是 10 岁。请问第五个人多大?

def age(s):    if s==1:        return 2    else:        return 2+age(s-1)print(age(4)+10)

给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

def ben(num):    if num//10000!=0:        print('输入错误')    else:        while num!=0:            n=num%10            l.append(n)            num//=10num=int(input('请输入一个不多于 5 位的正整数:'))l=[]ben(num)print(l)

一个数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位 与千位相同

def hui_wen(s):    # 基线条件    if len(s) < 2 :        # 字符串的长度小于2,则字符串一定是回文        return True    elif s[0] != s[-1]:        # 第一个字符和最后一个字符不相等,不是回文字符串        return False        # 递归条件        return hui_wen(s[1:-1])print(hui_wen('abcdefgfedcba'))

请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母

w={'m':'Monday',   'tu':'Tuesday',   'w':'Wednesday',   'th':'Thursday',   'f':'Firday',   'sa':'Saturday',   'su':'Sunday',   't':'Tuesday/Thursday',   's':'Saturday/Sunday' }a=input('请输入首字母或者2个字母:')if a in w.keys():    print(w[a])else:    print('没有此星期')

练习函数调用

def hanshu():	print('调用函数')hanshu()

文本颜色设置

\033[0m 默认字体正常显示,不高亮
\033[32;0m 红色字体正常显示
\033[1;32;40m 显示方式: 高亮 字体前景色:绿色 背景色:黑色
\033[0;31;46m 显示方式: 正常 字体前景色:红色 背景色:青色

print("\033[1;31;40m您输入的帐号或密码错误!\033[0m")

求 100 之内的素数

import mathfor i in range(1,101):    k=int(math.sqrt(i))    for j in range(2,i):        if i%j==0:            break````        if j>k:            print(i)            break

对 10 个数进行排序

l=[12,34,62,41,74,45,25,74,26,73]l.sort()print(l)

求一个 3*3 矩阵对角线元素之和

sum=0n=[    [1,2,3],    [2,3,4],    [3,4,5]]for i in range(3):    sum+=n[i][i]print(sum)

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中

l=[12,25,26,34,41,45,62,73,74]m=44for i in range(1,len(l)):    if m

将一个数组逆序输出

l=[12,34,62,41,74,45,25,74,26,73]for i in range(1,len(l)+1):    print(l[-i],end=' ')

转载地址:http://rlnwi.baihongyu.com/

你可能感兴趣的文章
Maven中指定得AspectJ依赖无法添加得解决方案
查看>>
Spring3注释装配的最佳实践
查看>>
Mac Vi常用键
查看>>
jchardet字符编码自动检测工具
查看>>
使用Maven Archetype生成工程报错的解决
查看>>
System.getProperty()系统参数
查看>>
Linux系统下批量删除.svn目录
查看>>
大数据行业应用趋势
查看>>
Mac + Rails3 + MongoDB的Demo工程搭建
查看>>
隐藏于Python内的设计之禅彩蛋
查看>>
VSCode配置C/C++环境
查看>>
OTB测试之Visual Tracker Benchmark v1.0全过程配置流程
查看>>
缓存在Springboot应用中的使用
查看>>
Linux(一)- 认识Linux
查看>>
Linux(二)- Linux常用命令
查看>>
Linux(三)- Java开发环境搭建
查看>>
Linux(四)- Ubuntu安装Mysql
查看>>
Ubuntu安装开发环境
查看>>
Deepin开发环境安装
查看>>
Spring入门
查看>>