我有一个从1到20的数字列表。随机10个数字。 我需要打印1、2、3、4等数字。直到列表中出现20。
问题在于,当它计数时,它会将11、12、13、14等计数为1。 我如何设置它到11时不会将其计为1,如果涉及其他数字(例如:12、13、14),则不会将其计为1或2,3,4。
谢谢您的回答!
count = 0
f = open("numbers.txt")
for line in f:
count += line.count("1")
print (count)
f.close()
答案 0 :(得分:2)
描述有点模棱两可,所以我在猜测您要寻找的东西。您是否要打印数字1到20?如果是这样,这就是我的做法:
打印到控制台
function hash(str) {
let g = 8;
let charset = "abcdefghijklmnop";
for(let i = 0; i < str.length; i++) {
g = (g * 82 + charset.indexOf(str[i]));
}
return g;
}
写入文件
for i in range(20):
print(i + 1)
如果这不是您想要的内容,可以提供更多详细信息吗?可能期望输入/输出?
编辑如果要计算文件中的实例:
with open("numbers.txt", 'w') as f:
for i in range(20):
f.write("{}\n".format(str(i + 1)))
searchNum = 10
count = 0
with open("num.txt", "r") as f:
for line in f:
if int(line.strip()) == searchNum:
count += 1
用于删除行上的所有空白
编辑编辑 这是使用list comprehensions的另一种样式:
strip()
答案 1 :(得分:2)
您可以通过将字符串转换为每行的整数来实现。 对于每个
for line in f:
count += 1 if int(line) == 1
如果文件每行包含多个整数:
for line in f:
num_arr = line.split(' ')
count += num_arr.count('1') #this works now since num_arr is a list of string
答案 2 :(得分:1)
您现在正在每行中计数数字字符。
for line in f: # line is string
count += line.count("1") # oh no! digit characters are counted!
要解决此问题,您必须还原数字的真实列表。
要获取“数字”列表,可以按空格分隔内容。现在,“数字”是字符串。
number_in_str = f.read().split()
下一步,将其转换为数字,然后计数。
numbers_list = [int(u) for u in number_in_str]
count = numbers_list.count(1)
答案 3 :(得分:0)
f = open(r"result.txt").read()
count = f.count('1')
print(count)
输出
12
答案 4 :(得分:0)
create or replace package p_sales_pkg
as
type rc is ref cursor;
procedure get_query( p_cursor in out rc, p_start date, p_end date );
end;
/
create or replace package body p_sales_pkg
as
procedure get_query( p_cursor in out rc, p_start date, p_end date )
is
l_query long := 'select s_name ';
begin
for i in 1 .. trunc(p_end)-trunc(p_start)+1
loop
l_query := l_query || ', sum( decode( trunc(s_date), ' ||
'to_date( ''' || to_char(p_start+i-1,'yyyymmdd') ||
''', ''yyyymmdd'' ), s_qty, 0 )) "' ||
to_char(p_start+i-1) || '"';
end loop;
l_query := l_query || ' from sales group by s_name';
open p_cursor for l_query;
end;
end;
/
set autoprint on
var x refcursor
exec nw_demo_pkg.get_query( :x, '10-MAR-19', '13-MAR-19' );