pythonクラシック練習100例(31~50)

9611 ワード

目次
31.アルファベットを入力して曜日を判断する
32.リストの反転
33.分割リスト
34.連絡関数呼び出し
35.テキスト色の設定
36.100以内の素数を求める
37.ソート
38.マトリクスの主対角線要素の和を求める
39.配列に要素を挿入する
40.配列を逆順に出力する
41.静的変数を模倣した使い方
42.autoを使用して変数を定義する方法を学習する
43.静的変数の模倣(static)
44.Python 2つのマトリックス加算
45.統計1から100の和
46.数字の平方を求める
47.2つの変数値の交換
48.数値比較
49.lambdaを使用して匿名関数を作成する
50.乱数を出力する
31.アルファベットを入力して曜日を判断する
テーマ:曜日の最初のアルファベットを入力して曜日を判断してください.最初のアルファベットが同じであれば、2番目のアルファベットを判断し続けます.
# coding:UTF-8

# Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday

c1 = raw_input("plz input a char, we will tell you the weekday: ")
if c1 == 'M' or c1 == 'm':
    print 'Monday'
elif c1 == 'T' or c1 == 't':
    c2 = raw_input("you should tell me the second char: ")
    if c2 == 'U' or c2 ==  'u':
        print 'Tuesday'
    elif c2 == 'H' or c2 ==  'h':
        print 'Thursday'
    else :
        print 'wrong chars'
elif c1 == 'W' or c1 == 'w':
    print 'Wednesday'
elif c1 == 'F' or c1 == 'f':
    print 'Friday'
elif c1 == 's' or c1 == 'S':
    c2 = raw_input("you should tell me the second char: ")
    if c2 == 'U' or c2 ==  'u':
        print 'Sunday'
    elif c2 == 'a' or c2 ==  'A':
        print 'Saturday'
    else :
        print 'wrong chars'
else :
    print 'wrong chars'

32.リストの反転
タイトル:リストの値を逆の順序で出力します.
# coding: UTF-8

l = [1,2,3,4,5,6,7,8,9]
for i in l:
    print i,
print
for i in range(len(l)-1, -1, -1):
    print l[i],
print
for i in l[::-1]:
    print i,
print

# list[::-1]     
print l[::-1]
print l[2::-1]
print l[:3][::-1]

33.分割リスト
タイトル:リストをカンマで区切ります.
join()メソッド
# coding: UTF-8

import sys

l = [1,2,3,4,5]
for i in l[:-1]:
    sys.stdout.write(str(i))
    sys.stdout.write(',')
sys.stdout.write(str(l[-1]))
print

# join()                            。
s1 = ','.join(str(n) for n in l)
l2 = ['1','2','3']
s2 = ','.join(l2)
print s1
print s2

34.連絡関数呼び出し
テーマ:関数呼び出しの練習.
# coding: UTF-8

def hello_world():
    print 'hello world'

def three_hellos():
    for i in range(3):
        hello_world()
if __name__ == '__main__':
    three_hellos()

35.テキスト色の設定
タイトル:テキスト色の設定.
# coding: UTF-8

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 + "  " + bcolors.ENDC

print('\033[92m hello \033[0m')
print '\033[91m world \033[0m'

36.100以内の素数を求める
100以内の素数を求めます.
# coding: UTF-8

from math import sqrt

def is_sushu(n):
    for j in range(2, int(sqrt(n))+1):
        if n % j == 0:
            return False
    return True

if __name__ == '__main__':
    for i in range(2, 101):
        if is_sushu(i):
           print i

37.ソート
タイトル:10個の数を並べ替えます.
# coding: UTF-8

if __name__ == '__main__':
    print "plz input ten number and sort them: "
    l = []
    for i in range(10):
        l.append(input('the %d num: '%(i+1)))
    l.sort()
    print l

38.マトリクスの主対角線要素の和を求める
テーマ:ひとつの3*3行列の主な対角線の要素の和を求めます.
# coding: UTF-8

l1 = [0]*3
l2 = [0]*3
l3 = [0]*3
l = [l1, l2, l3]
sum = 0
for i in range(3):
    for j in range(3):
        l[i][j] = input('please input a number: ')
        if i == j:
            sum += l[i][j]

for i in range(3):
    print l[i]
print l
print sum

39.配列に要素を挿入する
テーマ:すでに順番に並んでいる配列があります.数を入力し、元の法則で配列に挿入する必要があります.
# coding: UTF-8

l = [1, 5, 9, 10, 15]
print 'before insert: ', l
num = input("pls input a num: ")
# 0    , 1    , 2   
flag = -1

for i in range(4):
    if l[i]>l[i+1]:
        flag = 0
        break
    elif l[i] num:
        l.append(num)
elif flag == 0:
    for i in range(5):
        if num >= l[i]:
            l.insert(i, num)
            break
    if i == 4 and l[4] <> num:
        l.append(num)
else:
    print 'error'

print 'after insert: ',l

40.配列を逆順に出力する
テーマ:配列を逆シーケンスで出力します.
# coding: UTF-8

l = []
print 'plz input 5 number:'
for i in range(5):
    l.append(float(raw_input("plz input a num")))
print l
l1 = l[::-1]
l2 = l.reverse()  #none, reverse()     ,     
l3 = list(reversed(l))   # reversed()         ,  list,  list    
print l, l1, l2, l3

41.静的変数を模倣した使い方
テーマ:静的変数の使い方を真似します.
# coding: UTF-8

def func():
    var = 0
    print 'var = %d' % var
    var += 1

if __name__ == '__main__':
    for i in range(3):
        func()

#     
class Static:
    StaticVar = 5
    def func(self):
        self.StaticVar += 1
        print self.StaticVar

print Static.StaticVar
a = Static()
for i in range(3):
    a.func()

print Static.StaticVar

42.autoを使用して変数を定義する方法を学習する
テーマ:autoを使って変数を定義する使い方を学びます.
# coding: UTF-8

'''
C           auto,register,extern,static         。
               :           。
  auto register       。                          ,           ,         。

                。   C     ,          ,          auto              。
                     。   ,                   。  :         ,       。
      ,           :                  ,             ,        。
                 。

    x      ,   func1() ,   func2() 。func1() func2()  x    。      x                。
         auto,          。                  auto  ,auto        ,
'''
# python   auto   .

num = 2
def func():
    num = 1
    print 'internal num = %d' % num
    num += 1

for i in range(3):
    print "num = %d" %num
    num += 1
    func()

43.静的変数の模倣(static)
テーマ:静的変数(static)の別の例を模倣する.
# coding: UTF-8

class Num:
    nNum = 1
    def inc(self):
        self.nNum += 1
        print 'nNum = %d' % self.nNum

if __name__ == '__main__':
    nNum = 2
    inst = Num()
    for i in range(3):
        nNum += 1
        print 'The num = %d' %nNum
        inst.inc()
        print 'inst.num = %d' %inst.nNum

44.Python 2つのマトリックス加算
タイトル:Python 2つのマトリクスに3行3列のマトリクスを2つ加算し、対応する位置のデータ加算を実現し、新しいマトリクスを返します.
# coding: UTF-8

a = [[],[],[]]
b = [[],[],[]]
c = [[],[],[]]

print 'Please input the first: '
for i in range(3):
    for j in range(3):
        a[i].append( input('plz input a:%d,%d: ' % (i,j)))

print 'Please input the second: '
for i in range(3):
    for j in range(3):
        b[i].append( input('plz input b[%d][%d]: ' % (i,j)))

for i in range(3):
    for j in range(3):
        c[i].append(a[i][j] + b[i][j])

print a, '+', b , " = "
print c

45.統計1から100の和
テーマ:統計1から100までの和.
# coding: UTF-8

sum = 0
for i in range(1, 101):
    sum += i
print sum

46.数字の平方を求める
テーマ:数字の平方を入力することを求めて、もし平方の演算の後で50より小さいならば退出します.
# coding: UTF-8

a = input("plz input a : ")
b = a * a
print '%d power 2 is %d' %(a,b)
while b >= 50:
    a = input("plz input a : ")
    b = a * a
    print '%d power 2 is %d' %(a,b)

print '########################'

# python    do ... while,   while+break   do...while

while True:
    a = input("plz input a : ")
    b = a * a
    print '%d power 2 is %d' %(a,b)
    if b < 50 :
        break

47.2つの変数値の交換
タイトル:2つの変数値が入れ替わります.
# coding: UTF-8

x = input("plz input x: ")
y = int(raw_input('plz input y: '))

print 'you input x = %d, y = %d' %(x, y)

x,y=y,x
print ('after swap1: x = %d, y = %d' %(x, y))

t=x
x=y
y=t
print ('after swap2: x = %d, y = %d' %(x, y))

x=x+y
y=x-y
x=x-y
print ('after swap3: x = %d, y = %d' %(x, y))

x=x^y
y=x^y
x=x^y
print ('after swap4: x = %d, y = %d' %(x, y))


print '#########func#########'
# python         tuple  ,          

def swap(x,y):
    return (y,x)

def swap1(x,y):
    x,y=y,x
    return (x,y)

def swap2(x,y):
    t=x
    x=y
    y=t
#    return (x,y)

def swap3(x,y):
    x=x+y
    y=x-y
    x=x-y
#    return (x,y)

def swap4(x,y):
    x=x^y
    y=x^y
    x=x^y
    return (x,y)

x,y = swap(x,y)
print ('after swap: x = %d, y = %d' %(x, y))

48.数値比較
数字の比較.
# coding: UTF-8

x = input('x: ')
y = input('y: ')

if x < y:
    print '%d < %d' %(x, y)
elif x == y:
    print '%d = %d' %(x, y)
else:
    print '%d > %d' %(x, y)

49.lambdaを使用して匿名関数を作成する
テーマ:lambdaを使用して匿名関数を作成します.
# coding: UTF-8

MAX = lambda x,y: x if x>y else y
MIN = lambda x,y: (x

50.乱数を出力する
テーマ:乱数を出力します.
# coding: UTF-8

#   random  
import random

print random.uniform(1, 100)