python练习一百题(1)

  • 题目001:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
    解法一:
arr=[]
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            num=100*i+10*j+k
            if i!=j and j!=k and i!=k and num not in arr:
                arr.append(num)
print(len(arr),arr)

解法二:

import itertools#利用自带的排列组合模块
temp_arr = list(itertools.permutations([1, 2, 3, 4], 3))
print(temp_arr)
输出的是元组的列表

在这里插入图片描述
完整代码:

import itertools
temp_arr=list(itertools.permutations([1,2,3,4],3))
arr=[100*t[0]+10*t[1]+t[2] for t in temp_arr]
print(len(arr),arr)
  • 题目002:企业发放的奖金根据利润(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,求应发放奖金总数?
money=int(input('净利润:'))
arr=[1000000,600000,400000,200000,100000,0]
rat=[0.01,0.015,0.03,0.05,0.075,0.1]
bonus=0
for i in range(len(arr)):
    if money>arr[i]:
        bonus+=(money-arr[i])*rat[i]
        money=money-arr[i]
print(bonus)
  • 题目003:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?156
import math    #判断一个数是否为完全平方数,可用math.sqrt(i)%1?=0
for i in range(1000):
    if math.sqrt(i+100)%1==0 and math.sqrt(i+168)%1==0:
        print(i)
  • 题目004:输入某年某月某日,判断这一天是这一年的第几天?
    【个人备注】:知道python有时间元组这一概念,这道题完全不需要计算。
    时间元组包含九个属性
    tm_year 年
    tm_mon 月(1~12)
    tm_mday 日(1~31)
    tm_hour 时(0~23)
    tm_min 分(0~59)
    tm_sec 秒(0~61, 60或61是闰秒)
    tm_wday 星期(0~6, 0是周一)
    tm_yday 第几天(1~366, 366是儒略历)
    tm_isdst 夏令时(平时用不到)
import time
date=input('输入时间(例如;2019-09-15):')
st=time.strptime(date,'%Y-%m-%d')#Yb必须大写,m和d必须小写
#print(st)
#输入时间(例如;2019-09-15):2019-09-15
#time.struct_time(tm_year=2019, tm_mon=9, tm_mday=15, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=258, tm_isdst=-1)
print(st.tm_yday
  • 题目005:输入三个整数x,y,z,请把这三个数由小到大输出。
x=input('first num:')
y=input('second num:')
z=input('third num:')
l=[x,y,z]
arr=sorted(l)
print(arr)

  • 题目006:斐波那契数列。
l=[0,1]
for i in range(10):
    arr=l[-2:]
    l.append(arr[-2]+arr[-1])
print(l)

  • 题目007:将一个列表的数据复制到另一个列表中。
a = [1, 2, 3]
    b = a[:]
  • 题目008:题目:输出 9*9 乘法口诀表.
    解法一:
    搞不懂"%-7s"的作用,于是查了下资料,总结其用法如下(n表示正整数):

1、%s,直接输出字符串。

2、%[n]s,左补空格足n位后输出。-n为右补空格

3、%[m.n]s,从左截取n位后,左补空格足m位后输出。-m为右补空格

print默认是打印一行,结尾加换行。end=’ '意思是末尾不换行,加空格。

for i in range(1,10):
    for j in range(1,10):
        if j<=i:
            string='%d*%d=%d'%(j,i,i*j)
            print('%-7s'%string,end=' ')#end=' '表示不换行,空一格
    print(' ')#此时end为默认值,表示会换行

解法二:
format功能:

"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
运行结果:'hello world'

 "{0} {1}".format("hello", "world")  # 设置指定位置
运行结果:'hello world'

"{1} {0} {1}".format("hello", "world")  # 设置指定位置
运行结果:'world hello world'
for i in range(1,10):
    for j in range(1,i+1):
        print('{0}*{1}={2}'.format(j,i,i*j),end='\t')
    print()

python练习一百题(1)_第1张图片

  • 题目010:暂停一秒输出,并格式化当前时间。
import time
a = time.time()
time.sleep(1)
b = time.time()
print(b-a)
import time
a=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
print(a)
time.sleep(1)
b=time.strftime('%Y-%m_%d %H:%M:%S',time.localtime(time.time()))
print(b)

在这里插入图片描述

你可能感兴趣的:(python)