Teilen Sie ein Beispiel für eine Python-Übung

零下一度
Freigeben: 2017-07-23 11:23:50
Original
1938 Leute haben es durchsucht
1、有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
2、企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
3、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
4、输入某年某月某日,判断这一天是这一年的第几天?
5、输入三个整数x,y,z,请把这三个数由小到大输出。
6、斐波那契数列。
7、将一个列表的数据复制到另一个列表中。
8、输出 9*9 乘法口诀表。
9、暂停一秒输出。
10、暂停一秒输出,并格式化当前时间。
Nach dem Login kopieren
1、有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
方法一:
Nach dem Login kopieren
1 l = []2 for i in range(1,5):3     for j in range(1,5):4         for m in range(1,5):5             if len({i,j,m}) == 3:6                 l.append(i * 100 + j * 10 + m)7 print(l)8 print(len(l))
Nach dem Login kopieren
1 [123, 124, 132, 134, 142, 143, 213, 214, 231, 234, 241, 243, 312, 314, 321, 324, 341, 342, 412, 413, 421, 423, 431, 432]2 24
Nach dem Login kopieren
方法二:
Nach dem Login kopieren
Nach dem Login kopieren
1 from itertools import permutations2 3 l = []4 for i in permutations([1, 2, 3, 4], 3):5     l.append(i)6 7 print(l)8 print(len(l))
Nach dem Login kopieren
1 [(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3), (2, 1, 3), (2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1), (2, 4, 3), (3, 1, 2), (3, 1, 4), (3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 1, 2), (4, 1, 3), (4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)]2 24
Nach dem Login kopieren
2、企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?
方法一:
Nach dem Login kopieren
 1 # 这是最弱的方法,然而我想到的就是这种。。 2 a = [1000000,600000,400000,200000,100000,0] 3 b = [0.01,0.015,0.03,0.05,0.075,0.1] 4 x = int(input('销售利润是:')) 5  6 if x >= a[0]: 7     bonus = (x - a[0]) * b[0] + 400000 * b[1] + 200000 * b[2] + 200000 * b[3] + 100000 * b[4] + 100000 * b[5] 8     print('提成是:',bonus) 9 elif a[0] > x >= a[1]:10     bonus = (x - a[1]) * b[1] + 200000 * b[2] + 200000 * b[3] + 100000 * b[4] + 100000 * b[5]11     print('提成是:', bonus)12 elif a[1] > x >= a[2]:13     bonus = (x - a[2]) * b[2] + 200000 * b[3] + 100000 * b[4] + 100000 * b[5]14     print('提成是:', bonus)15 elif a[2] > x >= a[3]:16     bonus = (x - a[3]) * b[3] + 100000 * b[4] + 100000 * b[5]17     print('提成是:', bonus)18 elif a[3] > x >= a[4]:19     bonus = (x - a[4]) * b[4] + 100000 * b[5]20     print('提成是:', bonus)21 elif a[4] > x >= a[5]:22     bonus = (x - a[5]) * b[5]23     print('提成是:', bonus)24 elif x < 0:25     print(&#39;x必须大于0&#39;)
Nach dem Login kopieren
1 销售利润是:2000012 提成是: 17500.05
Nach dem Login kopieren
方法二:
Nach dem Login kopieren
Nach dem Login kopieren
 1 # 参考别人的 2 a = [1000000, 600000, 400000, 200000, 100000, 0] 3 b = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] 4 count = 0 5 while count < 5: 6     x = int(input(&#39;销售利润是:&#39;)) 7     sum = 0 8     for n in range(0,6): 9         if x > a[n]:10             tmp = (x-a[n])*b[n] # 计算该级别的提成11             sum += tmp12             x = a[n]  # 后续的每一级都计算满额提成13     print(sum)14     count += 1
Nach dem Login kopieren

3. Nach Addition von 100 ist es eine vollständige Zahl Zahl Eine Quadratzahl plus 168 ist eine perfekte Quadratzahl. Was ist diese Zahl?

Methode 1:

import math

x = -99  # 这个值是后面看别人答案时想到的,x+100必须大于0while x < 10000:if math.pow(int(math.sqrt(x+100)),2) == x+100:if math.pow(int(math.sqrt(x + 100 + 168)), 2) == x + 100 + 168:  # 简单列等式,谁不会。。。mdzz
Nach dem Login kopieren
# print(x) x += 1
Nach dem Login kopieren

Methode 2: Nachdem ich die Gedanken anderer Menschen gelesen habe, fühle ich mich geistig zurückgeblieben.

&#39;&#39;&#39;1、则:x + 100 = n2, x + 100 + 168 = m2
2、计算等式:m2 - n2 = (m + n)(m - n) = 168
3、设置: m + n = i,m - n = j,i * j =168,i 和 j 至少一个是偶数
4、可得: m = (i + j) / 2, n = (i - j) / 2,i 和 j 要么都是偶数,要么都是奇数。
5、从 3 和 4 推导可知道,i 与 j 均是大于等于 2 的偶数。
6、由于 i * j = 168, j>=2,则 1 < i < 168 / 2 + 1。
7、接下来将 i 的所有数字循环计算即可。&#39;&#39;&#39;i = 1#求出最大范围while ((i+1)*(i+1)-i*i) <= 168:
      i += 1#循环测试并打印for j in range(1,i):for k in range(1,i):if (k*k - j*j) == 168:print(k*k-268)
Nach dem Login kopieren

4. Geben Sie einen bestimmten Monat und Tag eines bestimmten Jahres ein und bestimmen Sie, welcher Tag im Jahr dieser Tag ist?

Methode 1:

import datetime

Y = int(input(&#39;年:&#39;))
m = int(input(&#39;月:&#39;))
d = int(input(&#39;日:&#39;))

days = datetime.datetime(Y,m,d) - datetime.datetime(Y,1,1) + datetime.timedelta(1)  # 减去当年1月1日n = int(str(days).split(&#39; &#39;)[0])print(n)


年:2003月:12日:2
336
Nach dem Login kopieren

Methode 2:

import time# D=input("请输入年份,格式如XXXX-XX-XX:")D=&#39;2017-4-3&#39;d=time.strptime( D,&#39;%Y-%m-%d&#39;).tm_yday# print("the {} day of this year!" .format(d))print(d)print(time.strptime( D,&#39;%Y-%m-%d&#39;))# 或使用datetime模块import datetimeprint(datetime.date(2017,4,3).timetuple().tm_yday)print(datetime.date(2017,4,3).timetuple())
Nach dem Login kopieren
93time.struct_time(tm_year=2017, tm_mon=4, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=93, tm_isdst=-1)93time.struct_time(tm_year=2017, tm_mon=4, tm_mday=3, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=93, tm_isdst=-1)
Nach dem Login kopieren

5. Geben Sie diese drei Zahlen von klein nach groß ein.

Methode 1

L = [a,b,c]
L.sort()print(&#39;\n&#39;.join(l))
Nach dem Login kopieren

Methode 2:

 1 # 最弱智的做法 2 # a = input(&#39;a=&#39;) 3 # b = input(&#39;b=&#39;) 4 # c = input(&#39;c=&#39;) 5 a = 10 6 b = 20 7 c = 30 8  9 l = []10 11 l.append(a)12 if b < a:13     l.insert(0,b)14     if c < b:15         l.insert(0,c)16     elif c > a:17         l.append(c)18     else:19         l.insert(1,c)20 else:21     l.append(b)22     if c < a:23         l.insert(0,c)24     elif c > b:25         l.append(c)26     else:27         l.insert(1,c)28 29 print('\n'.join(l))
Nach dem Login kopieren

Methode 3:

# 冒泡法a=[1,3,5,2,4,5,7]

n=len(a)for i in range(0,n):  for j in range(i,n) :     if (a[i] >= a[j] ):
        a[i],a[j] = a[j],a[i]print(a)
Nach dem Login kopieren
[1, 2, 3, 4, 5, 5, 7]
Nach dem Login kopieren
6、斐波那契数列。
方法一:
Nach dem Login kopieren
l = [0,1]def f(n):for x in range(n):
        l.append(l[x]+l[x+1])

f(20)print(l)
Nach dem Login kopieren
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946]
Nach dem Login kopieren

Methode 2:

# 使用递归def fib(n):if n == 1 or n == 2:return 1return fib(n - 1) + fib(n - 2)# 输出了第10个斐波那契数列print(fib(20))
Nach dem Login kopieren
7、将一个列表的数据复制到另一个列表中。
Nach dem Login kopieren
a = list(range(20))
b = a[:]print(a)print(b)print(id(a))print(id(b))
Nach dem Login kopieren
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]2030007944584
2030007104200
Nach dem Login kopieren
8、输出 9*9 乘法口诀表。
Nach dem Login kopieren
 1 # 先百度一下乘法口诀表长什么样子,怎么排列的 2 ''' 3 乘法口诀表如下: 4 1*1=1 5 2*1=2 2*2=4 6 3*1=3 3*2=6 3*3=9 7 4*1=4 4*2=8 4*3=12 4*4=16 8 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 9 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=3610 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=4911 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=6412 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=8113 '''14 formula = '{a} * {b} = {c}'15 16 s = ''17 for i in range(1,10):18     print(s)19     s = ''20     for j in range(1,i+1):21         s += formula.format(a=i,b=j,c=i*j) + ' '22         # print(formula.format(a=i,b=j,c=i*j))
Nach dem Login kopieren
1 * 1 = 1 
2 * 1 = 2 2 * 2 = 4 
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
Nach dem Login kopieren
9、暂停一秒输出。
Nach dem Login kopieren
import timefor n in range(1,10):print(n)
    time.sleep(1)
Nach dem Login kopieren
10、暂停一秒输出,并格式化当前时间。
Nach dem Login kopieren
import timefor i in range(5):
    struct_time = time.localtime(time.time())
    t = time.strftime('%Y-%m-%d %H:%M:%S',struct_time)
    t = time.strftime('%Y-%m-%d',struct_time)print(t)
    time.sleep(1)
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonTeilen Sie ein Beispiel für eine Python-Übung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!