ywsswy / blog Goto Github PK
View Code? Open in Web Editor NEWblog is not bug.
blog is not bug.
每次更改需要说明(为什么更改)
对比的字不要轻易移动位置
拿了个证书,写着及格,为什么不是Outstanding?哪怕Good也行啊,为什么仅仅是Pass?
然后紧接着……要唱**共产主义青年团团歌……
唉,我觉得我还是应该是Fail,活了这么多年,连团歌都不会,我是怎么活过来了的。
18.11.5
《光荣啊,**共青团》胡宏伟 作词 雷雨声 作曲
我们是五月的花海,
用青春拥抱时代;
我们是初生的太阳,
用声明点燃未来。
“五四“的火炬,
唤起了民族的觉醒。
壮丽的事业,
激励着我们继往开来。
光荣啊,**共青团,
光荣啊,**共青团。
母亲用共产主义为我们命名,
我们开创新的世界。
废话不多说,简单粗暴地上图。
(一)初始定义
(二)运行结果
(三)规律总结
对于如下输出语句
printf("%7.4d",12);
printf("%4.7f",123.456);
printf("%12.7s","hello");
归纳成形如printf("%a.bc",d)格式的输出语句,其中d为int/float/char[]等类型变量,c为d/f/s等格式符,a为前修饰符,b为后修饰符。
规律如下:
1.前修饰符的绝对值表示输出宽度限制;
2.后修饰符表示输出精度限制;
3.首先考虑后修饰符,然后再考虑前修饰符;
4.int型变量要求输出数字位数不低于精度限制,如果低于则用0在数字前补齐;
5.float型变量要求输出小数点后保留位数等于精度限制,多余部分被剪切掉;
6.char[]型变量要求输出字符串长度不高于精度限制,如果高于则将字符串后面多余的剪切掉;
7.对于上三者变量都要求输出宽度不低于宽度限制,如果低于,则用空格补齐;
8.前修饰符可正可负,后修饰符必须为正。
8.前修饰符如果为正数,则补齐宽度的空格在左,如果为负数,则补齐宽度的空格在右;
9.额外记忆:如果char[]型变量前修饰符以0开头,则补齐宽度不是用空格,而是用0。
(四)举例记忆
【例1】printf("%10.7s","12345678");
首先考虑后修饰符-精度限制为7;要求输出字符串长度不高于精度限制,如果高于则将字符串后面多余的剪切掉,"12345678"长度为8,多出一个,则将后面的“8”剪切掉,得到“1234567”;
然后考虑前修饰符-输出宽度限制为10;此时要求输出宽度不低于宽度限制,如果低于,则用空格补齐,现在长度为7需要补充3个空格达到宽度10;
因为前修饰符为正数,所以补齐宽度的空格在左,即输出格式应为“###1234567”//为便于理解,空格符我用#符号代替。
【例2】printf("%-7.4d",123456);
首先考虑后修饰符-精度限制为4;要求输出数字位数不低于精度限制,此时位数为6不低于4,满足条件;
然后考虑前修饰符-输出宽度限制为7;此时要求输出宽度不低于宽度限制,如果低于,则用空格补齐,现在长度为6需要补充1个空格达到宽度7;
因为前修饰符为负数,所以补齐宽度的空格在右,即输出格式应为“123456#”//为便于理解,空格符我用#符号代替。
附图:验证分析正确
—— 2016-11-23
生活总是会突如其来的给你小惊喜,今天种下一颗种子指不定就是未来几年后你乘凉的那棵树。一个我不喜欢的小屁孩(你不可能认同所有人,也没必要认同所有人,但是不可否认每个人都有其闪光点),我突然发现其手机上有我写的app……这是真滴有点意思,感觉上是几年前写的,而且自认为写得超烂的,早就废弃掉的,而其竟然仍然在使用。有点小感动呢。好吧,看在你在无形中一直支持我的份上,就原谅你这个小屁孩了o(∩∩)o
18.11.8
看着以前的黑名单,他们都曾经做过一些让我很不爽的事,让我很想臭骂他们一顿,在黑名单里记录下也是总想着以后什么时候给他们点教训看看。
【遭报应
江直树 qq 872116034
【有点狂
杨宇哲 16
李效乾 16
孔明
晓聪:“程序自己看懂就行了,注释的话,劳资开心就加,不开心的话,我管你看不看得懂”
……
可是随着时间的流逝,再去看发现已经不怎么在意他们了,仇恨似乎烟消云散,他们对我而言已经无所谓了的感觉。
为什么会这样呢?时间会让人淡忘仇恨吗?
这些人有一个共同点:可能跟我素不相识,在生活中没什么太大交集。类似的有比如游戏里面被人无情杀掉,然后就记下来,想着什么时候游戏角色变强了再报仇雪恨……
这些能被时间淡忘,因为:
1)、弱肉强食,落后就“挨打”,本是无可厚非的法则。经历多了也就见怪不怪了。
2)、每个人在互联网的世界中都有可能像变了一个人一样,生活中有收敛的一面,互联网中就可以有发泄放肆的一面。况且,我们该掌控的是自己而不是别人。
3)、很重要的一点是,这些人真的跟自己交集不大。“让你爱得越深的人,也会是让你恨的最深的人”。越在意的人才会想改变他,不相干的人任他自生自灭又何妨。
那再来说那些很难淡忘的恨。比如曾经是朋友,可是受到了背叛,最终不欢而散。受到背叛的一方仇恨很难淡忘,发出背叛的一方或许有一段的内疚后就不太在意了。
或者说,每个人都不希望自己的付出与努力得不到认可和尊重,尤其是自己最亲近的人。
作为给予方表演方,要明确表演给谁看,给他她它,还是仅仅给自己,要掌握一个度,要知道自己给的是不是他想要的,别忘了那句话:“对一个人好,不是把自己认为的好强加给对方,而是当做最好的朋友,支持他,理解他。”
作为接收方欣赏方,要明确自己的角色,要知道自己对表演者而言的重要性。
demo写了 Game_Paint1 和 Game_Paint2,当按‘2’键时绘制图2,当按其他键时绘制图1。
先看可能出现的三种现象:
1)按了键'2',显示立即从图1变成图1,这是我们希望的理想情况。
2)按了键'2',并没有立刻显示图2,而是当“客户区出现遮掩后重见天日”(后面简称为重见天日)时,才会看到图1变成了图2。
第二种现象代码如下:(重见天日时,VM_PAINT触发一次,才能看到按键切换绘图的效果)
WndProc(){
/* .... */
case WM_PAINT:
YGlobalVars::log1.w(__FILE__, __LINE__, YLog::INFO, "WM_PAINT","");
if(YGlobalVars::lastkey == 0x32){
Game_Paint2(hwnd);
}else{
Game_Paint1( hwnd);
}
ValidateRect(hwnd, NULL);
break;
default:
return DefWindowProc( hwnd, message, wParam, lParam );
}
return 0;
}
VOID Game_Paint1(HWND hwnd){
YGlobalVars::log1.w(__FILE__, __LINE__, YLog::INFO, "Game_Paint1 start","");
SelectObject(YGlobalVars::hMdc,YGlobalVars::hBitmap1);
BitBlt(YGlobalVars::hdc,0,0,YGlobalVars::window_width,YGlobalVars::window_height,YGlobalVars::hMdc,0,0,SRCCOPY);
return;
}
VOID Game_Paint2(HWND hwnd){
YGlobalVars::log1.w(__FILE__, __LINE__, YLog::INFO, "Game_Paint2 start","");
SelectObject(YGlobalVars::hMdc,YGlobalVars::hBitmap2);
BitBlt(YGlobalVars::hdc,0,0,YGlobalVars::window_width,YGlobalVars::window_height,YGlobalVars::hMdc,0,0,SRCCOPY);
return;
}
WinMain(){
/* ... */
while( msg.message != WM_QUIT ){
if( PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ){
DispatchMessage( &msg );
}
}
/* ... */
}
如果把第二种现象的代码中 ValidateRect(hwnd, NULL); 去掉,就会出现第一种现象。(VM_PAINT不停得触发。这说明:如果不调用这个 ValidateRect,VM_PAINT消息将一直存在于消息队列中,时刻绘制)
紧接着,如果把 ValidateRect(hwnd, NULL); 下面的 break; 去掉,又会出现第二种现象。(重见天日时,VM_PAINT触发一次,才能看到按键切换绘图的效果。这说明不 break 时,进入default 处理的 DefWindowProc 系统函数中包含了类似 ValidateRect 的功能,可以把VM_PAINT消息从队列中移除)
3)但是这里还有第三种现象,把 Game_Paint2(hwnd); 去掉,这样当“客户区出现遮掩后重见天日”(后面简称为重见天日)时,“重见天日”的部分变成白色,这是一种类似橡皮擦的现象。
(未完,待续。。。)(卒)
重见天日时,不仅仅有VM_PAINT,还会有其他绘图有关的消息。
客户区是指整个应用程序窗口中没有被标题栏、边框、菜单栏、工具栏、状态栏和滚动条占用的区域。
这里有两个概念:有效区和无效区,其中需要重新绘制的部分被称作无效区,如果客户区有了无效区域,结果就是windows会往消息队列中发出一条WM_PAINT消息。
如果窗口处理过程在处理一条WM_PAINT消息之前,客户区的另外一部分也失效了,windows会计算出覆盖这两块区域的一个新的矩形,并且更新绘制信息结构中的数据,而不会在消息队列中放置另一个WM_PAINT消息。
InvalidateRect函数强制使windows发出一条WM_PAINT消息。
ValidateRect则相反,如果调用了ValidateRect函数后,整个客户区都有效了,消息队列中的WM_PAINT消息就会被删除;如果不调用这个ValidateRect,VM_PAINT消息将一直存在,时刻绘制
#!/usr/bin/env python3
filename_tangpoetry = 'TangPoetry.txt'
# pre-processing( read from file & cut single word into list
def PreProcessing(filename, total_line):
word_list = []
with open(filename, 'r', encoding='utf-8') as f:
line = 1
data = f.readlines()
for i in data:
for j in i:
# judge chinese word.(https://blog.csdn.net/zhenyu5211314/article/details/51537778)
if ord(j) >= 13312 and ord(j) <= 40895:
word_list.append(j)
DrawProgressbar(line/total_line)
line = line + 1
return word_list
# count each word
def CountWord(word_list):
word_dict = {}
for i in word_list:
try:
word_dict[i] = word_dict[i] + 1
except:
word_dict[i] = 1
return word_dict
# get the total number of lines of a file
def CountLine(filename):
count=0
thefile=open(filename_tangpoetry)
while True:
buffer=thefile.read(1024*8192)
if not buffer:
break
count+=buffer.count('\n')
thefile.close()
return count
# draw the ProgressBar
def DrawProgressbar(percent):
length = 3
num_ok = int(percent * 100 / 3)
num_no = (int(100/3) - num_ok)
print('\r {:>5.1f}%% [{}{}]'.format(percent*100, '◼' * num_ok, '◻' * num_no), end='')
def Main():
print('start preprocessing')
total_line = CountLine(filename_tangpoetry)
word_list = PreProcessing(filename_tangpoetry, total_line)
# print(word_list)
word_dict = CountWord(word_list)
# print(word_dict)
sorted_list = sorted(word_dict.items(), key = lambda word_dict:word_dict[1])
# the highest frequency word
print(sorted_list[-150:])
Main()
在计算机还没有出现之前,有一种叫做电传打字机的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”(carriage return),告诉打字机把打印头定位在左边界;另一个叫做“换行(line feed)”,告诉打字机纸要进下一行。这就是“换行”和“回车”的来历。
后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出
现了分歧。(Windows,Linux,Mac在文件读写换行上面会有差别)
二者区别整理如下:
- | CR | LF |
---|---|---|
中文名 | 回车符 | 换行符 |
英文名 | carriage return | line feed |
转义表示法 | \r | \n |
ASCII码值,Vim中查看16进制来判断':%!xxd' | 13(0xD) | 10(0xA) |
- | 正斜杠 | 反斜杠 |
---|---|---|
写法 | / | | |
english | forward slash | backward slash |
区别记忆 | 普通符号(例如'/n'是两个字符) | 特殊(转义)符号(例如'\n'是一个字符) |
应用场景 | html标签、URL网址、Unix系统文件分隔符、分号、除法 | Windows系统文件路径分隔符(虽然cmd中正反都能识别,但是要使用Tab自动补全的话,>还是要反斜杠)、代码中代表指令连接下一行 |
一个windows中创建的文件,在ubuntu中打开每一行结尾都显示'^M',然后vim中使用命令':%s/^M/\r/g'后,'^M'被替换成'\r',这样就从原来每行结尾一>个'^M',变成了每行下面都多出一个空行,此时使用命令':%!xxd'后,发现是0x0a,也就是(\n),好神奇啊,就是说vim中命令的'\r'写到文件中就是'\n',这是什么原因呢?(当然接下来要去掉多出来的所有空行/偶数行,使用命令':%s/\n\n/\r/g')
猜测一下原因的话就是,命令':%s/pat1/pat2/g'中,pat1是读文件找匹配,pat2是写文件来替换;读文件的话显示'\r'就成了'^M',显示'\n'就成了'$';
写文件的话写入'\r'就成了'\n',写入'\n'就成了'\0'(因为Linux中以为你要写这行结尾,而Linux行尾是不用'\n'的)。
其他:不管怎么写文件,用vim打开文件最后一个字符都会是'\n';vim的显示是……人性化的,比如如果文件中全都是'\r\n'的话,vim中也只显示'$',但>是如果既有'\r\n'又有'\n',vim就会把'\r\n'显示成'^M'以示特殊……
https://www.cnblogs.com/codingmengmeng/p/6179822.html
https://blog.csdn.net/bdss58/article/details/77775770
https://wenku.baidu.com/view/ca728b68b84ae45c3b358c69.html
2018.11.9 整理
认识小羊很久了,从第一眼见到她起,我就知道她对我而言没有任何吸引力。
起初感觉她是很收敛很内向,总是感觉交流有障碍,对我言听计从,说什么都听的一个小孩。
后面她成功“逆袭”改变我的看法。
她心理强大,家庭问题没有击垮她。
她学习刻苦,保送研究生。
她有梦想有追求,喜欢就去做,一件事可以坚持到底。
她严于律己,作息规律,给自己安排满任务。
更重要的是,她给了我生活的仪式感。熟悉之后她会有随和的一面亲近的一面,但仪式感的一面同样惊人。从小被勤俭解决灌输的我,很难想象那种“高端美食”,我对吃的享受的定义也就是尽量吃便宜的,偶尔可以放开大吃一顿刺激的。我视食物如生存工具,她视之为需要精心对待的生活,需要一小口一小口品尝的时光。
生活中多一些这样的仪式感不好么,认真对待每一分每一秒,我值得最好的自己。这是心态,也是习惯。
她,明明很努力,明明很优秀,但也总是说自己很菜,不是谦虚的那种,而是很诚恳的那种。
身边到处都是这样的人,看似一只丑小鸭,突然有一天发觉原来是只白天鹅。
我曾经喜欢吃方便面。但是从2014年下半年开始,我可以拍着良心说:我至今没吃过一口方便面,不论是干脆面还是水煮面,不论是东三福还是康师傅,不论是炒方便面还是泡方便面。我都不会碰一口,现在如此,这辈子都会如此。(当然啦,有几次和同学去同吃一锅干锅,难免夹杂些许,这个问题也一直困扰着我,或许以后遇到吃方便面的人我就与其断交?)
我怎么做到的?记得那一天放学,我为了满足自己,泡了一碗方便面。但因为太困不小心睡着了,第二天醒来时冲到厨房发现,汤已经被面吸干了,只剩下了被泡得很粗很大很湿的一坨面,上面还有凝固的黑色调料……老妈正在给我做早餐,她可能看了我一眼,但什么都没有说。
我感受到了莫大的耻辱,发誓今后不再碰一口方便面。我拿了个塑料袋,把这一坨装了进去,然后密封好,贴上日期标签,摆在床头的阳台上。
于是乎,我亲眼见证了一袋方便面从面条变成面饼,又从面饼变成面酱,见证了发酵后的膨胀,还有腐烂后的生蛆。每一次,当我想要吃方便面的时候,我都会拿出这一坨仔细端详,放在手上仔细把玩,隔着塑料袋望着里面不停蠕动的蛆,要吃面的欲望瞬间就会烟消云散。
直到有一天,我发现这一坨隔着塑料袋散发出来的恶气已经可以熏死两头老黄牛的时候,我觉得仅仅一个塑料袋已经不能禁锢住这一坨了,我去了蛋糕店,借用了高温加热封袋机,把这坨转封到一个月饼袋里。这样强力的密封总算是能把这一坨散发的恶气禁锢住了。
再后来,高中毕业,我一个人千里迢迢来到重庆,虽然要拿的东西很多,但我仍义无反顾地带着它。这一坨,成功度过火车安检,入侵到了重庆,我把它安置到了寝室最高点供着它。
就这样,转瞬之间,几年没吃方便面了,我很自豪,我成功戒掉了方便面。哦耶!
为什么说“我的人生我做主“,因为人生每时每刻都在做选择题。
已过午夜,还有想做的事,要不要睡觉?这是选择题;六点已过,要不要立即起床,开始新一天?这是选择题。
每一道选择题选什么最终选择权还是在自己手中。
做还是不做要的是气节。升国旗时,周围没一个人张嘴唱国歌,我要不要大声唱出来?是有很多不唱的理由,比如大家都不唱只有我一个人唱显得不合群,大家如果都对我投来异样的眼光会有些不好意思。可是唱的理由只有一个,那就是:唱国歌是我应该做的。这是原则性问题,应该做的就算有再多不做的理由也比不过一个要做的理由。
做还是不做只在一念间。走路时发现地上的垃圾捡还是不捡,如果这都要犹豫一会的话,恐怕早已经走远数十米了吧,还会转身退回来吗?
做还是不做习惯成自然。不应该做的事,只要放纵做一次,就会一发不可收拾;应该做的事,只要狠心做一次,下一次就不会再难。应该做的事,请给我时间,我定无愧于心;不应该做的事,请随时考验我,我定以命相搏。
——18.11.26
我不知道我是不是那个妄自菲薄的,我总是觉得自己做得太差,各方面都那么糟糕,每当做错什么事的时候我就想着还应该怎么惩罚自己。可是每到大家在一起聊天时,大家都是说:“我是菜鸡啊”,“大佬,您怎么那么强啊”,而这些话我却不想说出口,或许你真的有长处,但我真的不觉得我比你差多少,或许这就是一种打招呼的客套话,emmmmm可能我是不谦虚的人?
那我到底是妄自菲薄的人,还是骄傲自大的人啊( ⊙ o ⊙ )?
我知道一个可怕的故事,就是:我如果认真的话我自己都怕。 可是我却在怕什么,为什么不敢认真?
还是少年吗?还在改变吗? why not now? wait to die?
上课提问的时候,问的是我们组所有人,更新数据的时候如果要更新多条数据需要加什么参数,我不清楚,只记得有update_many,我沉默了,期待其他人能回答得上来,虽然心里清楚基本不可能。就这么结束了。
虽然回答得上来与否对我没什么太大关系,但是心里却着实不是一般的难受,像是喉咙里一块石子,就这一次机会,不吐出来此生将永远留在喉咙里。为什么不说呢,我在等什么,有什么好观望的?别人都追逐的,我可以不稀罕,别人不愿意的,我愿首当其冲。
说错了又有什么关系呢?如果沉默,就连知道自己不对的机会都没有了,就现在,不要等
最大的失败是害怕失败,总想着完美会错过完美。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.