我坚持使用我的代码解决了一个问题,即让用户输入一系列数字/字母,程序会使用提供的参数返回所有可行的邮政编码。这是一个详细的问题:
编写一个从用户读取数字的程序。你的计划 应该能够跟踪/计算最小值,最大值,总数 sum和输入数字的平均值。当用户输入" q"时, " Q"或"退出",程序应显示最小值,最大值,总数 总和,以及结束前输入的数字的平均值。你可以假设 用户将始终输入数字或其中一个字符串 “q”,“Q”或“退出”。您还可以假设用户将始终输入 至少一个号码(即,他们不会立即选择退出 启动该计划)。
将您的Python程序保存在名为a2q3.py的文件中,并将其添加到您的 提交zip文件。问题4(邮政分拣代码)
正向分拣区域代码是a的前三个字符 加拿大邮政编码(例如," K1S"邮政编码" K1S 5B6")和它 格式为:
- 第一个字符:A和Z之间的字母
- 中间字符:0到9之间的数字,包括零,包括9 - - 最后一个字符:A和Z之间的字母
您将创建一个程序来生成可能的子集 分拣区域代码。而不是使用整个范围,你必须 使用嵌套循环编写程序,生成所有可能的循环 适合用户指定的约束的代码。你的程序应该 请求用户提供以下信息:
- 第一个字符的起始字母
- 第一个字符的结尾字母
- 中间字符的起始位
- 中间字符的结束位数
- 最后一个字符的起始字母
- 最后一个字符的结束字母
醇>然后您的程序应打印出适合的所有可能组合 这些限制。每个范围应包括起始值 和结束值,以及它们之间的所有值。你可以假设 用户只输入有效输入(即大写字符 对于字母和0-9为数字)。你不能使用Python 列表,字典或设置功能来迭代字母。 相反,您应该使用ord()函数来查找整数值 指定字母(即ASCII值)和chr() 函数从整数转换回字母(更多 有关这些功能的信息,请访问 https://docs.python.org/3/library/functions.html)。打印完毕后 每个可能的代码,您的程序应打印出总数 结束前的代码数量。
这是我的代码:
start_let_first_char=input("Please enter the starting letter of the first character: ")
end_let_first_char=input("Please enter the ending letter of the first character: ")
start_dig_mid=int(input("Please enter the starting digit of the middle character: "))
end_dig_mid=int(input("Please enter the ending digit of the middle character: "))
start_let_last_char=input("Please enter the starting letter of the last character: ")
end_let_last_char=input("Please enter the ending letter of the last character: ")
for x in range(ord(start_let_first_char),ord(end_let_first_char)+1):
for y in range(start_dig_mid,end_dig_mid +1):
for z in range(ord(start_let_last_char),ord(end_let_last_char)+1):
print(chr(x)+str(y)+chr(z))
我运行代码并输入所有字母/数字时遇到的错误是:
for z in range(ord(start_let_last_char,ord(end_let_last_char)+1)):
TypeError: ord() takes exactly one argument (2 given)
谢谢,它已修好并正常工作!我忘了为邮政编码添加一个计数器。我应该在最后添加一个计数器和一个打印(计数器)功能,还是有人可以推荐一种更好的方法来做到这一点?
答案 0 :(得分:0)
此:
for z in range(ord(start_let_last_char,ord(end_let_last_char)+1)):
应该是:
for z in range(ord(start_let_last_char),ord(end_let_last_char)+1):
逗号在那里放错了地方。
添加了计数器:
letter_1_start = input(
"Please enter the starting letter of the first character: ")
letter_1_end = input(
"Please enter the ending letter of the first character: ")
digit_start = int(
input("Please enter the starting digit of the middle character: "))
digit_end = int(
input("Please enter the ending digit of the middle character: "))
letter_2_start = input(
"Please enter the starting letter of the last character: ")
letter_2_end = input(
"Please enter the ending letter of the last character: ")
counter = 0
for x in range(ord(letter_1_start), ord(letter_1_end) + 1):
for y in range(digit_start, digit_end + 1):
for z in range(ord(letter_2_start), ord(letter_2_end) + 1):
print(chr(x) + str(y) + chr(z))
counter += 1
print("Total number of codes:", counter)