ฉันพยายามเรียกใช้โมดูลจากคอนโซล โครงสร้างของไดเรกทอรีของฉันคือ:
ฉันพยายามเรียกใช้โมดูลp_03_using_bisection_search.py
จากproblem_set_02
ไดเรกทอรีโดยใช้:
$ python3 p_03_using_bisection_search.py
รหัสภายในp_03_using_bisection_search.py
คือ:
__author__ = 'm'
from .p_02_paying_debt_off_in_a_year import compute_balance_after
def compute_bounds(balance: float,
annual_interest_rate: float) -> (float, float):
# there is code here, but I have omitted it to save space
pass
def compute_lowest_payment(balance: float,
annual_interest_rate: float) -> float:
# there is code here, but I have omitted it to save space
pass
def main():
balance = eval(input('Enter the initial balance: '))
annual_interest_rate = eval(input('Enter the annual interest rate: '))
lowest_payment = compute_lowest_payment(balance, annual_interest_rate)
print('Lowest Payment: ' + str(lowest_payment))
if __name__ == '__main__':
main()
ฉันกำลังนำเข้าฟังก์ชั่นที่เป็นp_02_paying_debt_off_in_a_year.py
รหัส:
__author__ = 'm'
def compute_balance(balance: float,
fixed_payment: float,
annual_interest_rate: float) -> float:
# this is code that has been omitted
pass
def compute_balance_after(balance: float,
fixed_payment: float,
annual_interest_rate: float,
months: int=12) -> float:
# Omitted code
pass
def compute_fixed_monthly_payment(balance: float,
annual_interest_rate: float) -> float:
# omitted code
pass
def main():
balance = eval(input('Enter the initial balance: '))
annual_interest_rate = eval(
input('Enter the annual interest rate as a decimal: '))
lowest_payment = compute_fixed_monthly_payment(balance,
annual_interest_rate)
print('Lowest Payment: ' + str(lowest_payment))
if __name__ == '__main__':
main()
ฉันได้รับข้อผิดพลาดต่อไปนี้:
ModuleNotFoundError: No module named '__main__.p_02_paying_debt_off_in_a_year'; '__main__' is not a package
ฉันไม่รู้ว่าจะแก้ไขปัญหานี้อย่างไร ฉันลองเพิ่ม__init__.py
ไฟล์แล้วแต่มันยังใช้งานไม่ได้
eval(input(...
บิตที่แนะนำโดย 2to3 วันนี้ฉันทำอย่างนั้นกับฉันแล้ว ดีใจที่ฉันไม่ทำตามคำแนะนำที่ทำให้ตาบอด
eval(input...
อาจไม่ใช่ความคิดที่ดี ฉันแค่แยกวิเคราะห์แทนที่จะเปิดโอกาสในการใช้รหัสโดยอำเภอใจ