(Python)如何让用户打开文本文件然后更改整数/数字
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了(Python)如何让用户打开文本文件然后更改整数/数字,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5861字,纯文字阅读大概需要9分钟。
内容图文
![(Python)如何让用户打开文本文件然后更改整数/数字](/upload/InfoBanner/zyjiaocheng/779/209c6479f84c4f40b3ebbe3fa83c2f85.jpg)
我问了一个类似的问题,但无济于事.
我是一名新手编程学生,我只学过一些基本技巧.部分任务是创建一个我主要完成的配方程序,只有一部分阻止我完成.
我应该允许用户调用以前创建的文本文件(我已完成此位),然后在此之后应该显示该文件的内容供他们查看(我也做过这一点),但是用户应该能够重新计算份量,从而改变成分的数量.因此,如果用户输入:“我想要2份”并且1份的原始数量是100g,那么它现在应该输出200g.
这真让我感到沮丧,我的老师明天希望这项工作.以下是我应该允许用户做的事情.
用户应该能够检索配方并为不同数量的人重新计算成分.
?程序应要求用户输入人数.
?程序应输出:
?食谱名称
?新人数
?修订后的数量,包含此人数的单位.
我将在下面发布我的实际代码,以显示我到目前为止所做的工作,即允许用户查看和制作新配方.但缺少修订后的数量.
如果代码混乱或无组织,我很抱歉,我是新手.
代码到目前为止:
#!/usr/bin/env python
import time
def start():
while True:
user_input = input("\nWhat would you like to do? " "\n 1) - Enter N to enter a new recipe. \n 2 - Enter V to view an exisiting recipe, \n 3 - Enter E - to edit a recipe to your liking. \n 4 - Or enter quit to halt the program " "\n ")
if user_input == "N":
print("\nOkay, it looks like you want to create a new recipe. Give me a moment..." "\n")
time.sleep(1.5)
new_recipe()
elif user_input == "V":
print("\nOkay, Let's proceed to let you view an existing recipe stored on the computer")
time.sleep(1.5)
exist_recipe()
elif user_input == "E":
print("\nOkay, it looks like you want to edit a recipe's servings. Let's proceed ")
time.sleep(1.5)
modify_recipe()
elif user_input == "quit":
return
else:
print("\nThat is not a valid command, please try again with the commands allowed ")
def new_recipe():
new_recipe = input("Please enter the name of the new recipe you wish to add! ")
recipe_data = open(new_recipe, 'w')
ingredients = input("Enter the number of ingredients ")
servings = input("Enter the servings required for this recipe ")
for n in range (1,int(ingredients)+1):
ingredient = input("Enter the name of the ingredient ")
recipe_data.write("\nIngrendient # " +str(n)+": \n")
print("\n")
recipe_data.write(ingredient)
recipe_data.write("\n")
quantities = input("Enter the quantity needed for this ingredient ")
print("\n")
recipe_data.write(quantities)
recipe_data.write("\n")
unit = input("Please enter the unit for this quantity (i.e. g, kg) ")
recipe_data.write(unit)
print("\n")
for n in range (1,int(ingredients)+1):
steps = input("\nEnter step " + str(n)+ ": ")
print("\n")
recipe_data.write("\nStep " +str(n) + " is to: \n")
recipe_data.write("\n")
recipe_data.write(steps)
recipe_data.close()
def exist_recipe():
choice_exist= input("\nOkay, it looks like you want to view an existing recipe. Please enter the name of the recipe required. ")
exist_recipe = open(choice_exist, "r+")
print("\nThis recipe makes " + choice_exist)
print(exist_recipe.read())
time.sleep(1)
def modify_recipe():
choice_exist = input("\nOkay, it looks like you want to modify a recipe. Please enter the name of this recipe ")
exist_recipe = open(choice_exist, "r+")
servrequire = int(input("Please enter how many servings you would like "))
start()
编辑:
下面是一个文本文件(配方)的示例创建及其输出(该文件名为bread.txt)注意输出有点乱,我将解决一旦我可以使程序的核心工作.
创建食谱
What would you like to do?
1) - Enter N to enter a new recipe.
2 - Enter V to view an exisiting recipe,
3 - Enter E - to edit a recipe to your liking.
4 - Or enter quit to halt the program
N
Okay, it looks like you want to create a new recipe. Give me a moment...
Please enter the name of the new recipe you wish to add! bread.txt
Enter the number of ingredients 3
Enter the servings required for this recipe 1
Enter the name of the ingredient flour
Enter the quantity needed for this ingredient 300
Please enter the unit for this quantity (i.e. g, kg) g
Enter the name of the ingredient salt
Enter the quantity needed for this ingredient 50
Please enter the unit for this quantity (i.e. g, kg) g
Enter the name of the ingredient water
Enter the quantity needed for this ingredient 1
Please enter the unit for this quantity (i.e. g, kg) l
Enter step 1: pour all ingredients into a bowl
Enter step 2: mix together
Enter step 3: put in a bread tin and bake
查看食谱
What would you like to do?
1) - Enter N to enter a new recipe.
2 - Enter V to view an exisiting recipe,
3 - Enter E - to edit a recipe to your liking.
4 - Or enter quit to halt the program
V
Okay, Let's proceed to let you view an existing recipe stored on the computer
Okay, it looks like you want to view an existing recipe. Please enter the name of the recipe required. bread.txt
This recipe makes bread.txt
Ingrendient # 1:
flour
300
g
Ingrendient # 2:
salt
50
g
Ingrendient # 3:
water
1
l
Step 1 is to:
pour all ingredients into a bowl
Step 2 is to:
mix together
Step 3 is to:
put in a bread tin and bake
如果输入V,这是输出:
这个食谱制作了bread.txt
Ingrendient # 1:
flour
300
g
Ingrendient # 2:
salt
50
g
Ingrendient # 3:
water
1
l
Step 1 is to:
pour all ingredients into a bowl
Step 2 is to:
mix together
Step 3 is to:
put in a bread tin and bake
我期待着你的回复.
解决方法:
您的配方文件看起来像这样:
Ingrendient # N:
{INGREDIENT}
{AMOUNT}
{METRIC}
...
(After N ingredients...)
Step N:
{INSTRUCTIONS}
所以基本上你想要一次读取四行,丢弃第一行,然后将其余部分分配给有用的东西.
with open(path_to_recipe) as infile:
ingredients = []
while True:
try:
sentinel = next(infile) # skip a line
if sentinel.startswith("Step"):
# we're past the ingredients, so
break
name = next(infile)
amount = next(infile)
metric = next(infile)
except StopIteration:
# you've reached the end of the file
break
ingredients.append({'name':name, 'amount':float(amount), 'metric':metric})
# use a dictionary for easier access
当我们退出with块时,成分将是一个字典列表,可以按如下方式使用:
for ingredient in ingredients:
scaled_volume = ingredient['amount'] * scale # double portions? etc...
print(scaled_volume, ingredient['metric'], " ", ingredient['name'])
# # RESULT IS:
300g flour
50g salt
1l water
你应该能够利用所有这些来完成你的任务!
内容总结
以上是互联网集市为您收集整理的(Python)如何让用户打开文本文件然后更改整数/数字全部内容,希望文章能够帮你解决(Python)如何让用户打开文本文件然后更改整数/数字所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。