파이썬 프로그래밍(제3판) 존 셀러 프로그래밍 연습 수업 후 답안(제5장)
# -*- 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()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.