Python入門100例

22288 ワード

Python入門100例
テーマは菜鳥教程python 100例から来て、pythonの基礎文法の強固さに適用して、私は中からテーマ(実はテーマが多すぎてできない)を選んで以下に書きました.
一、4つの数字があります:1、2、3、4、互いに異なっていて重複していない3桁の数を構成することができますか?それぞれいくらですか.
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if( i != k ) and (i != j) and (j != k):
                print (i*100+j*10+k)

二、企業が支給するボーナスは利益によって引き上げられる.利益(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を入力して、ボーナスの総数を支払うべきですか?
profit = 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(0, 6):
    if profit > arr[i]:
        bonus += (profit-arr[i]) * rat[i]
        for j in range(i, 5):
            bonus += (arr[j]-arr[j+1])*rat[j+1]
        print(bonus)
        break

三、1つの整数、それは100をプラスした後に1つの完全な平方数で、更に168をプラスしてまた1つの完全な平方数で、この数はいくらですか?
for i in range(1,85):
    if 168 % i == 0:
        j = 168 / i;
        if  i > j and (i + j) % 2 == 0 and (i - j) % 2 == 0 :
            m = (i + j) / 2
            n = (i - j) / 2
            x = n * n - 100
            print(x)

四、ある年ある月ある日を入力し、この日がこの年の何日目かを判断する.
year = int(input("     "))
month = int(input("     "))
day = int(input("    "))

amount = ()
if year % 4 == 0 and year % 100 != 0:
    amount = (31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366)
amount = (31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365)
if month == 1:
    print(day)
else:
    print(amount[month-2]+day)

五、三つの整数x,y,zを入力して、この三つの数を小さいから大きいまで出力してください.
x = int(input("       :"))
y = int(input("       :"))
z = int(input("       :"))
a = ()
if x > y:
    if y > z:
        a = (z, y, x)
    elif x > z:
        a = (y, z, x)
    else:
        a = (y, x, z)
else:
    if x > z:
        a = (z, x, y)
    elif y > z:
        a = (x, z, y)
    else:
        a = (x, y, z)
print("       :" + str(a))

六、出力フィボナッチ数列の上位20数.
fib = [1, 1]
for i in range(2,21):
    fib.append(fib[i-2] + fib[i-1])
print(str(fib))

七、あるリストのデータを別のリストにコピーし、出力する.
a = [1, 1, 2, 3, 5, 8]
b = a[:]
print(str(b))

八、出力9*9乗算口诀表.
for i in range(1,10):
    for j in range(1, i+1):
        print(str(i*j) + "   ", end = "")
    print()

九、一時停止して一秒後に出力します.解析:timeモジュールのsleep()関数を使用します.
import time

a = [1, 3, 5, 7, 9]
for i in range(0,5):
    print(a[i])
    time.sleep(1)#    

十、一秒の出力を一時停止し、現在の時間をフォーマットします.
import time

for i in range(0,30):
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
    time.sleep(1)#    

十一、古典の问题:1対のウサギがあって、生まれてから3ヶ月目から毎月すべて1対のウサギを生んで、小さいウサギは3ヶ月目まで成长してから毎月また1対のウサギを生んで、もしウサギはすべて死なないならば、毎月のウサギの総数はいくらですか?(小学校の悪夢問題は、実はフィボナッチ数列)
fib = [1, 1]
for i in range(2,21):
    fib.append(fib[i-2] + fib[i-1])
print(str(fib))

十二、101-200の間に何個の素数があるかを判断し、すべての素数を出力する.
def isPrime(num):
    if num == 2:
        return True
    for i in range(2, int(num ** 0.5 + 1)):
        if num % i == 0:
            return False
    return True

count = 0;
for i in range(100, 201):
    if isPrime(i):
        print(i)
        count += 1
print("   :" + str(count))

十六、指定されたフォーマットの日付を出力します.
import datetime

print(datetime.date.today().strftime("%Y.%m.%d"))
MyBirthday = datetime.date(1997, 10, 24)
print( MyBirthday.strftime("%Y.%m.%d"))
print(datetime.date.today() - MyBirthday)#    

十七、英字、スペース、数字、その他の文字の個数をそれぞれ統計する1行の文字を入力します.
s = input("        :")
alphabet = 0
space = 0
number = 0
others = 0

for c in s:
    if c.isalpha():
        alphabet += 1
    elif c.isspace():
        space += 1
    elif c.isnumeric():
        number += 1
    else:
        others += 1

print("   :" + str(alphabet) + " ")
print("   :" + str(space) + " ")
print("   :" + str(number) + " ")
print("     :" + str(others) + " ")

三十二、リストの値を逆の順序で出力する.
a = [1, 3, 5, 7, 9]
for i in a[::-1]:
    print(i)

三十五、テキストの色の設定.
class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

print(bcolors.WARNING + "    ")

四十九、lambdaを使用して匿名関数を作成します.
ADD = lambda x,y : (x+y)
print(ADD(1, 2))

50、乱数を出力します.
import random
print(random.uniform(0, 100))

六十二、文字列を検索します.
str1 = "abcdefg"
str2 = "ef"
print(str1.find(str2))

六十八、n個の整数があり、その前の各数を順番にm個の位置に後退させ、最後にm個の数が一番前のm個の数になる
a = [1, 2 , 3, 4, 5, 6, 7, 8, 9, 10]
m = int(input("   m  :"))
b = a[len(a)-m: len(a)]
a[m: len(a)-1] = a[0: len(a)-1-m]
a[0: m] = b
print(str(a))

70、1つの関数を書いて、1つの文字列の長さを求めて、main関数の中で文字列を入力して、そしてその長さを出力します.
def length(s):
    length = 0
    for c in s:
        length += 1
    return length

if __name__ == "__main__":
    s = input("        :")
    print("    :" + str(length(s)))

七十三、チェーンテーブルを逆出力します.
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for i in a[::-1]:
    print(i)

七十四、ソートはsort()メソッドを使用することができ、接続は+番号またはextend()メソッドを使用することができる.
a = [1, 3, 5, 7, 9]
b = [2, 4, 6, 8, 10]
a.extend(b)
a.sort()
print(a)

八十四、接続リストの文字列.
delimiter = ','
mylist = ['Brazil', 'Russia', 'India', 'China']
print (delimiter.join(mylist))

八十七、構造体変数伝達
class Student:
    id = 0
    name = ""
def init(std):
    std.id = 2678
    std.name = "brother xiao"

std = Student()
init(std)
print(str(std.id) + "  " +  std.name)

九十二、時間関数はプログラムの計時に用いる
import time
start = time.time()
sum = 0
for i in range(0, 3000):
    sum += i
end = time.time()
print("    :" + str(end-start) + " ")

九十七、キーボードから文字を入力し、1つの#を入力するまでディスクファイルに1つずつ書きます.
if __name__ == "__main__":
    f = open("test.txt", "w")
    print("      ")
    ch = ""
    while "#" not in ch:
        ch = input()
    f.write(ch)
    f.close()

百、リストを辞書に変換します.
a = ["China", "America", "Japan", "British"]
dic = {}
for i in range(0, len(a)):
    dic[i] = a[i]
print(str(dic))