最近有一項工作只注重總體分數,但是要求小項也要有分數。共有100分,5個小項,每個小項20分。比如,如果總分是91分的話,那麼需要隨機生成5個20分以內的數字,它們的和為91分,同時,為了使分數的方差不太大,規定每個分數至少為15分。
先看一下最終的結果如何吧:
先建立乙個excel**,裡面保證第一列是已經評好的分數:
(這裡使用函式randbetween模擬了)
然後再將檔案儲存為csv格式:
接著將這個檔案拖到python檔案上:
然後再開啟檔案之後就是想要的結果啦!
為了方便處理,使用csv檔案,即逗號分隔檔案。這種檔案中,每一行的各個資料以逗號分隔,第一行對於就資料的一行。雖然python中有專門的csv模組,但是由於此問題比較簡單,就直接手工操作了。
現在看一下源**……其實很簡單啦:
#!/usr/bin/python
#coding=utf8
from random import randint
from sys import argv
cols = 5
def getscore(score):
if score < 15 * cols:
return [0] * cols
scs = [20] * cols
while sum(scs) > score:
index = randint(0, cols - 1)
if scs[index] <= 15:
continue
scs[index] -= 1
return scs
scores =
with open(argv[1], "r") as sf:
for line in sf:
sf.close()
with open(argv[1], "w") as sf:
for score in scores:
sf.write("%d,"%score)
sf.write("%s\n"%(str(getscore(score)).strip('')))
sf.close()
**在python2即python3中均測試通過。 php 生成csv檔案
廢話不多說,上乾貨 方法一 匯出excel csv data 匯出資料 headlist 第一行,列名 filename 輸出excel檔名 functioncsv export data array headlist array filename 將資料通過fputcsv寫到檔案控制代碼 fput...
Java生成CSV檔案
pm要求在資料庫查出資料在瀏覽器匯出為csv的檔案,一接手沒多想直接用poi存進hssfworkbook物件,最後把檔案字尾名弄csv用流直接輸出到客戶端,三下五除二就搞定了,並且能用正常開啟。後來測試發現根本不是那麼回事。其實,csv是逗號分隔的 b 純文字 b 而xls是二進位制的,顯然這種低階...
sqlplus 生成csv 檔案
set echo off 非表示 set linesize 1000 列數 set pagesize 0 不分頁 set trimspool on spool 行末 無効 set pause off 相當於自動回車 set termout off 出力 畫面表示 set feedback off 行...