파이썬 프로그래밍(제3판) 존 셀러 프로그래밍 연습 수업 후 답안(제5장)

7712 단어
5.2 한 CS 교수가 5점 테스트를 실시했는데 등급은 5-A, 4-B, 3-C, 2-D, 1-E, 0-F로 프로그램을 작성하여 테스트 점수를 입력으로 하고 해당하는 등급을 출력했다.
# -*- coding: utf-8 -*-
#gradeconvert.py

def gradeconvert():
    gradeLevel = "FEDCBA"
    #    
    grade = float(input("Enter the grade: "))
    print("The converted grade level is: ", gradeLevel[grade])

gradeconvert()

5.3.한 CS 교수가 100점의 시험을 주었는데 등급은 90-100:A, 80-89:B, 70-79:C, 60-69:D, <60:F이다.프로그램을 작성하여 테스트 점수를 입력으로 받고 해당하는 등급을 출력합니다.
# -*- coding: utf-8 -*-
#gradeconvert2.py

def gradeconvert2():
    gradeLevel = "FDCBA"
    #    
    grade = float(input("Enter the grade: "))
    gradeLev = int(grade/10 - 5)
    if gradeLev < 0:
        print("The converted grade level is: F")
    elif gradeLev == len(gradeLevel):
        print("The converted grade level is: A")
    else:
        print("The converted grade level is: ", gradeLevel[gradeLev])
gradeconvert2()


5.4. 사용자가 짧은 단어를 입력한 다음 짧은 단어의 알파벳 줄임말(대문자)을 출력할 수 있도록 프로그램을 작성합니다.
# -*- coding: utf-8 -*-
#capInitials.py

def capInitials():
    words = input("Please enter a phrase: ").split() #  split           
    init = ""     #    ,    
    for i in range(len(words)):
        init = init + words[i][0]
    init = init.upper() #     s.upper(),   s      
    print(init)
        
capInitials()

5.5. 프로그램을 작성하여 단일 이름을 입력하는 수치를 계산합니다.a는 1, b는 2, c는 3...
# -*- coding: utf-8 -*-
#nameValue.py

def nameValue():
    alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    nameStr = input("Please enter a your name: ") #  split           
    nameStr = nameStr.upper()
    nValue = 0
    for letter in nameStr:
        nValue = nValue + alphabet.find(letter) + 1
    print("Your name vlaue is: ", nValue)
        
nameValue()


5.6. 이전 문제의 해결 방안을 확장해서 완전한 이름을 계산할 수 있도록 합니다.
# -*- coding: utf-8 -*-
#nameValue1.py

def nameValue1():
    alphabet = " ABCDEFGHIJKLMNOPQRSTUVWXYZ"      #     0
    nameStr = input("Please enter a your name: ") #  split           
    nameStr = nameStr.upper()
    nValue = 0
    for letter in nameStr:
        nValue = nValue + alphabet.find(letter)
    print("Your name vlaue is: ", nValue)
        
nameValue1()


5.7. 캐시 암호를 인코딩하고 디코딩할 수 있는 프로그램을 만듭니다. 키 값은 2입니다.
# -*- coding: utf-8 -*-
#caesarCipher0.py

def caesarCipher0():
    alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    message = input("Enter the message that needs to be translated: ")    
    message = message.upper()
    mode = input("Encode or decode: ")
    transMsg = ""
    key = 2
    if mode == "encode" :
        for letter in message:
            if letter == " ":
                transMsg = transMsg + " "   
            else:
                loc = alphabet.find(letter) + key
                if loc > 25:                #    
                    loc = loc - 26
                transMsg = transMsg + alphabet[loc]
        print("The encoded message is: ", transMsg)
    elif mode == "decode":
        for letter in message:
            if letter == " ":
                transMsg = transMsg + " "
            else:
                loc = alphabet.find(letter) - key
                if loc < 0:             #    
                    loc = loc + 26
                transMsg = transMsg + alphabet[loc]
        print("The decoded message is: ", transMsg)
            
caesarCipher0()


5.8. 이전 연습에서 문제가 하나 있었는데, 그것은 자모표의 끝을 초과하는 상황을 처리하지 않았다.진정한 캐시 비밀번호는 순환 방식으로 이동하는데, 그 중에서 z 다음의 자모는 a이다.이전 문제의 해결 방안을 수정하여 순환시키다.
# -*- coding: utf-8 -*-
#caesarCipher.py

def caesarCipher():
    alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    message = input("Enter the message that needs to be translated: ")    
    message = message.upper()
    mode = input("Encode or decode: ")
    transMsg = ""
    if mode == "encode" :
        key = int(input("The key value is: "))
        for letter in message:
            if letter == " ":
                transMsg = transMsg + " "   
            else:
                loc = alphabet.find(letter) + key
                if loc > 25:                #    
                    loc = loc - 26
                transMsg = transMsg + alphabet[loc]
        print("The encoded message is: ", transMsg)
    elif mode == "decode":
        print("The decoded messages are: ")
        for key in range(26):
            transMsg = ""
            for letter in message:
                if letter == " ":
                    transMsg = transMsg + " "
                else:
                    loc = alphabet.find(letter) - key
                    if loc < 0:             #    
                        loc = loc + 26
                    transMsg = transMsg + alphabet[loc]
            print("Key value = ", key, transMsg)
            
caesarCipher()


5.9. 사용자가 입력한 문장의 단어 수를 계산하는 프로그램을 만듭니다.
# -*- coding: utf-8 -*-
#wordCal().py

def wordCal():
    inputArr = input("Enter a sentence: ").split()
    print("This sentence cotains ", len(inputArr), "words")
    
wordCal()


5.10. 사용자가 입력한 문장의 평균 단어 길이를 계산하는 프로그램을 만듭니다.
# -*- coding: utf-8 -*-
#wordAve.py

def wordAve():
    inputStr = input("Enter a sentence: ")
    inputArr = inputStr.split()    #            ,        
    numLetter = len(inputStr) - inputStr.count(" ")
    numWord = len(inputArr)
    print("The average lenth of the words in this sentence is: {0:0.2f}".format(numLetter/numWord))
    
wordAve()

5.11. 제1장의 chaos를 편찬하다.py 프로그램의 개선 버전은 사용자가 두 개의 초기 값과 교체 횟수를 입력한 다음에 양식이 좋은 표를 인쇄하여 이 값들이 시간에 따라 변화하는 상황을 나타낼 수 있도록 한다.
# File:chaos.py
# -*- coding: utf-8 -*-
# 1.5、  chaos  ,            。

# File:chaos.py
# -*- coding: utf-8 -*-
# 5.11、  chaos  ,            。

def main():                                               
    print("This program illustrates a chaotic function.")  
    randNum = input("Enter two numbers between 0 and 1, separated by comma: ").split(",")
    randNum = [float(x) for x in randNum ]                 #               
    n = eval(input("Enter the times of cycle: "))          #      n 
    print("index\t{0}\t\t{1}".format(randNum[0], randNum[1]))
    for i in range(n):
        for j in range(2):
           randNum[j] = 3.9 * randNum[j] * (1 - randNum[j]) 
        print("{0}\t{1:0.8f}\t{2:0.8f}".format(i, randNum[0], randNum[1]))

main()          

5.12. 제2장 중의futval을 편찬하다.py 프로그램의 개선 버전입니다.프로그램은 사용자에게 투자 금액, 연화 이율과 투자 연수를 제시할 것이다.그리고 프로그램은 정확한 양식의 표를 출력하여 연간 단위로 투자의 가치를 추적한다.
# File:2.6.py
# futval
# -*- coding:utf-8 -*-
 
def main():
    print("This program calculates the future value of a n-year investment.")
 
    principal = eval(input("Enter the initial principal: "))
    apr = eval(input("Enter the annual interest rate: "))
    year = eval(input("Enter the year of investment: ")) #      
    print("The value in each year is:
Year\tValue") print("--------------------------------") for i in range(year): # principal = principal * (1 + apr) print("{0}\t{1:.2f}".format(i + 1, principal)) # main()

 

좋은 웹페이지 즐겨찾기