From 0c70cda54b9f5f0bf8a06b4621f52db708e13618 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 11:54:21 +0800 Subject: [PATCH 001/101] Create cover.jpg --- cover.jpg | Bin 0 -> 54534 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 cover.jpg diff --git a/cover.jpg b/cover.jpg new file mode 100644 index 0000000000000000000000000000000000000000..961ec7a74cf9341758dfb500a5ecfb624bc5be14 GIT binary patch literal 54534 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â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 PIof~@r-7Vwpb!7qU(b7d literal 0 HcmV?d00001 From 6c6f5dd4197bed2a20443c941228ba37ea0fe8e0 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 15:31:16 +0800 Subject: [PATCH 002/101] Update SUMMARY.md --- SUMMARY.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 23cbaa094..8649690f4 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,9 +1,12 @@ # Summary -- [教学反转](0MOOC/README.md) -- [基础旋进](1sTry/README.md) -- [迭代作品](2nDev/README.md) -- [人生首秀](3rDemo/README.md) -- [代码 (_src)](_src/README.md) -- [素材 (draft)](draft/README.md) - + [教程该怎么写](draft/how2tutorial.md) -- [有关](ABOUT.md) + +* [Introduction](README.md) +* [1教学反转](0MOOC/README.md) +* [基础旋进](1sTry/README.md) +* [迭代作品](2nDev/README.md) +* [人生首秀](3rDemo/README.md) +* [代码 (_src)](_src/README.md) +* [素材 (draft)](draft/README.md) + * [教程该怎么写](draft/how2tutorial.md) +* [有关](ABOUT.md) + From 262dd83ffb276418b59ec38edcae24fe014bba53 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 15:31:44 +0800 Subject: [PATCH 003/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 8649690f4..1ec1d991c 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,7 +1,7 @@ # Summary * [Introduction](README.md) -* [1教学反转](0MOOC/README.md) +* [1.教学反转](0MOOC/README.md) * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From 995fb082dc9bc03b2e0ea8556669b6df5faf5b0a Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 15:33:07 +0800 Subject: [PATCH 004/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 1ec1d991c..0c8082cee 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,6 +2,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) + * 1.1 Week0:粮草未动,兵马先行 * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From 1fcb433550d13c293ee92f6555a028e7c1322fe4 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 15:33:31 +0800 Subject: [PATCH 005/101] Update 0MOOC/README.md --- 0MOOC/README.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/0MOOC/README.md b/0MOOC/README.md index 4c4e0274e..c5ed0944c 100644 --- a/0MOOC/README.md +++ b/0MOOC/README.md @@ -1,6 +1,4 @@ -# 0MOOC -~ 此目录收集, 课程进入时的体验 -## 进展 +#Week0:兵马未动粮草先行 +# -- 150924 大妈创建 \ No newline at end of file From d9f6ef244b469ed9880e0bbf8ceee0efffd5133e Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 15:34:05 +0800 Subject: [PATCH 006/101] Create 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md --- 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md diff --git a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md new file mode 100644 index 000000000..23517880a --- /dev/null +++ b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md @@ -0,0 +1,2 @@ +# 1.1 Week0:粮草未动,兵马先行 + From ba7c38bfaaa4533c732a2e23d83d6c66a06d910c Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 15:34:08 +0800 Subject: [PATCH 007/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 0c8082cee..1256f5524 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,7 +2,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) - * 1.1 Week0:粮草未动,兵马先行 + * [1.1 Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From 0cc5dd56413125d9eb18f065ad8ad38f383ae26f Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:07:31 +0800 Subject: [PATCH 008/101] Update 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md --- ...ang_cao_wei_dong_ff0c_bing_ma_xian_xing.md | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md index 23517880a..d8cc35bd6 100644 --- a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md +++ b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md @@ -1,2 +1,25 @@ # 1.1 Week0:粮草未动,兵马先行 + +## 生命不息,折腾不止——系统篇 + + * 入班之前就听闻win系统编程不方便,试用几天果不其然,于是,决定装Linux(Ubuntu)。一通折腾,说好的U盘引导安装在我这愣是装不上,誓不罢休,wubi法安装,遂成。种种折磨,就差砸电脑了。 + +* 网上教程很多,但良莠不齐,因为水平差异&脑回路不同有些教程逻辑跳跃,官方Help是大杀器,小白的福利:-D + +## 生命不息,折腾不止——科学上网篇 + +* +不翻墙情况下,试了下Github,可以打开但不流畅,关键是Google&Gmail没法用,不能忍。购买Shadowsocks按照教程安装,Win上可以用各种爽。Ubuntu下配置有点复杂,几经摸索配置妥当就是死活连不上——崩溃(我不是系统)反复检查发现不是设置问题,应该是墙修高了。搜索,发现了一个利器——Lantern,遂用,好使,开心:-D + +* +多巴胺的分泌多寡跟你前期投入多少看来有时候是正相关的 + + + + + + + + + From 0ed5a1eb533533e1f91f99371537ecf2dfcce3c3 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:10:26 +0800 Subject: [PATCH 009/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 1256f5524..5fd715025 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,7 +2,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) - * [1.1 Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) + * [ Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From df0d678d9e2b3bad475fea5a27115c23983c326a Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:12:13 +0800 Subject: [PATCH 010/101] Update 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md --- 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md index d8cc35bd6..896c7af69 100644 --- a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md +++ b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md @@ -1,4 +1,4 @@ -# 1.1 Week0:粮草未动,兵马先行 +# Week0:粮草未动,兵马先行 ## 生命不息,折腾不止——系统篇 From 69102d2240d593f98ed4add53bee821c511930dc Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:14:35 +0800 Subject: [PATCH 011/101] Update SUMMARY.md --- SUMMARY.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 5fd715025..5b1b4e649 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,7 +2,8 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) - * [ Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) + * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) + * 关于Git种种 * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From 945e3cd56fb962a94cf8427c04d07d556b9aa277 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:15:09 +0800 Subject: [PATCH 012/101] Create 0MOOC/11guan_yu_git_zhong_zhong.md --- 0MOOC/11guan_yu_git_zhong_zhong.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 0MOOC/11guan_yu_git_zhong_zhong.md diff --git a/0MOOC/11guan_yu_git_zhong_zhong.md b/0MOOC/11guan_yu_git_zhong_zhong.md new file mode 100644 index 000000000..1da9ceb95 --- /dev/null +++ b/0MOOC/11guan_yu_git_zhong_zhong.md @@ -0,0 +1,2 @@ +# 关于Git种种 + From cf41b0c17650ff6b0480d4b4cf9612057b2e26f2 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:15:12 +0800 Subject: [PATCH 013/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 5b1b4e649..393b35b8e 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) - * 关于Git种种 + * [关于Git种种](0MOOC/11guan_yu_git_zhong_zhong.md) * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From 93d146f4b3593a7fcb3f1aec108444d7a86ce34e Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:15:18 +0800 Subject: [PATCH 014/101] Delete 0MOOC/11guan_yu_git_zhong_zhong.md --- 0MOOC/11guan_yu_git_zhong_zhong.md | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 0MOOC/11guan_yu_git_zhong_zhong.md diff --git a/0MOOC/11guan_yu_git_zhong_zhong.md b/0MOOC/11guan_yu_git_zhong_zhong.md deleted file mode 100644 index 1da9ceb95..000000000 --- a/0MOOC/11guan_yu_git_zhong_zhong.md +++ /dev/null @@ -1,2 +0,0 @@ -# 关于Git种种 - From 7f0633ec0ded0f7d58509c0f82e6426f71bcdf52 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:15:19 +0800 Subject: [PATCH 015/101] Update SUMMARY.md --- SUMMARY.md | 1 - 1 file changed, 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 393b35b8e..1754d884c 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,6 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) - * [关于Git种种](0MOOC/11guan_yu_git_zhong_zhong.md) * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From dde3c47a1737e49ab803164a9b054127590afb08 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:15:39 +0800 Subject: [PATCH 016/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 1754d884c..c6cc2d1c8 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,6 +3,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) + * 关于Git种种 * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From 33402a51bb8e6b2229985b28ac8b365bdf992028 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:15:55 +0800 Subject: [PATCH 017/101] Create 0MOOC/guan_yu_git_zhong_zhong.md --- 0MOOC/guan_yu_git_zhong_zhong.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 0MOOC/guan_yu_git_zhong_zhong.md diff --git a/0MOOC/guan_yu_git_zhong_zhong.md b/0MOOC/guan_yu_git_zhong_zhong.md new file mode 100644 index 000000000..1da9ceb95 --- /dev/null +++ b/0MOOC/guan_yu_git_zhong_zhong.md @@ -0,0 +1,2 @@ +# 关于Git种种 + From 4ede95ea081d1aa9e0a1b5e2139f6d1c7a14e11f Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 16:16:00 +0800 Subject: [PATCH 018/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index c6cc2d1c8..5d6df4859 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) - * 关于Git种种 + * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From 13360d7e34b9379af3064a38fd36af811a9d4d1e Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 18:32:28 +0800 Subject: [PATCH 019/101] Update book.json --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index df19e9765..253b851c7 100644 --- a/book.json +++ b/book.json @@ -7,7 +7,7 @@ "disqus" ], "pluginsConfig": { - "shortName": "Openmindclub" + "shortName": "thek" } } From a3bed075105b9c183f24acc07b70022805afcdfe Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 18:34:07 +0800 Subject: [PATCH 020/101] Update book.json --- book.json | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/book.json b/book.json index 253b851c7..f4d1cf3c3 100644 --- a/book.json +++ b/book.json @@ -1,13 +1,8 @@ -{"title": "开智学院 编程课程 Python 入门班 私人教程模板", - "version": "15.9.18,2020", - "description": "OMOOC.py tutorial for teching", - "author": "OMOOC-support ", - - "plugins": [ - "disqus" - ], +{ + "plugins": ["disqus"], "pluginsConfig": { - "shortName": "thek" - } -} - + "disqus": { + "shortName": "thek" + } + } +} \ No newline at end of file From 34ece743b26d0220debd5446864241fd19680baf Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 15 Oct 2015 18:41:26 +0800 Subject: [PATCH 021/101] Update book.json --- book.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/book.json b/book.json index f4d1cf3c3..cd1277094 100644 --- a/book.json +++ b/book.json @@ -2,7 +2,7 @@ "plugins": ["disqus"], "pluginsConfig": { "disqus": { - "shortName": "thek" + "shortName": "jqk" } } } \ No newline at end of file From 1c2b833d591873491537ae309335a62401e647e5 Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:18:27 +0800 Subject: [PATCH 022/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 5d6df4859..9b311f5c0 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -4,7 +4,7 @@ * [1.教学反转](0MOOC/README.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) -* [基础旋进](1sTry/README.md) +* [2. 基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From 838cc605a1c2e7e9beb9527b0dfc0ec20cad1971 Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:21:32 +0800 Subject: [PATCH 023/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 9b311f5c0..c91ad5da5 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -5,6 +5,7 @@ * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) + * 开始编程 * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From e843f84435e91afb1f058ab8f4c395d3c6d7f16b Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:21:47 +0800 Subject: [PATCH 024/101] Create 1sTry/2.1 kai_shi_bian_cheng.md --- 1sTry/2.1 kai_shi_bian_cheng.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 1sTry/2.1 kai_shi_bian_cheng.md diff --git a/1sTry/2.1 kai_shi_bian_cheng.md b/1sTry/2.1 kai_shi_bian_cheng.md new file mode 100644 index 000000000..fd3842d6a --- /dev/null +++ b/1sTry/2.1 kai_shi_bian_cheng.md @@ -0,0 +1,2 @@ +# 开始编程 + From faf90fe013b16dd0d7f13673945afc48c4a50705 Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:21:55 +0800 Subject: [PATCH 025/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index c91ad5da5..e9e54c979 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -5,7 +5,7 @@ * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) - * 开始编程 + * [开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From 2cbcedcb5d8e2501eba1527d8606ed607cc1d50c Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:22:29 +0800 Subject: [PATCH 026/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index e9e54c979..3ef1dbd62 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -5,7 +5,7 @@ * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) - * [开始编程](1sTry/2.1 kai_shi_bian_cheng.md) + * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From dacd0d06522db7577398c20699794327d49ce63a Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:23:03 +0800 Subject: [PATCH 027/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 3ef1dbd62..0f685b25d 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -6,6 +6,7 @@ * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) + * 2.1.1 小日记任务 * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From a8ef1fb3e3335fe013239d0ba1eb3ce1f3de748e Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:23:16 +0800 Subject: [PATCH 028/101] Create 1sTry/211_xiao_ri_ji_ren_wu.md --- 1sTry/211_xiao_ri_ji_ren_wu.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 1sTry/211_xiao_ri_ji_ren_wu.md diff --git a/1sTry/211_xiao_ri_ji_ren_wu.md b/1sTry/211_xiao_ri_ji_ren_wu.md new file mode 100644 index 000000000..46fb53da0 --- /dev/null +++ b/1sTry/211_xiao_ri_ji_ren_wu.md @@ -0,0 +1,2 @@ +# 2.1.1 小日记任务 + From c7cc177cb3e013a063ccf4bbd5793df38da32e73 Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:23:21 +0800 Subject: [PATCH 029/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 0f685b25d..703189658 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -6,7 +6,7 @@ * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) - * 2.1.1 小日记任务 + * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From 77a3a566d69f6da35d54751d6dce65e73a78ef25 Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:24:00 +0800 Subject: [PATCH 030/101] Update 1sTry/README.md --- 1sTry/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1sTry/README.md b/1sTry/README.md index 0388cd9f3..e4a1f3eb4 100644 --- a/1sTry/README.md +++ b/1sTry/README.md @@ -3,4 +3,4 @@ ## 进展 -- 150924 大妈创建 \ No newline at end of file +- 150924 大妈创 \ No newline at end of file From b4b6e28cbed71918cfc5b45f46482b2c6d728a52 Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:52:21 +0800 Subject: [PATCH 031/101] Update 1sTry/211_xiao_ri_ji_ren_wu.md --- 1sTry/211_xiao_ri_ji_ren_wu.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/1sTry/211_xiao_ri_ji_ren_wu.md b/1sTry/211_xiao_ri_ji_ren_wu.md index 46fb53da0..8977114a5 100644 --- a/1sTry/211_xiao_ri_ji_ren_wu.md +++ b/1sTry/211_xiao_ri_ji_ren_wu.md @@ -1,2 +1,24 @@ # 2.1.1 小日记任务 +## 任务描述 + +> 完成一个极简交互式日记系统,需求如下: +> * 一次接收输入一行日记 +* 保存为本地文件 +* 再次运行系统时,能打印出过往的所有日记 + + +### 挖坑: + 1. 如何向文本添加内容不删除或者覆盖原来内容 + + 2. 读写文件的基础知识 + + 3. 如何每次记录每次写完日记的时间,且在下次打开系统时能展示 + + 4. 文本换行 + + + + +### +填坑 \ No newline at end of file From e82b2ba7885171b67ba790a911b7338daa33cc5a Mon Sep 17 00:00:00 2001 From: JQK Date: Wed, 21 Oct 2015 23:58:09 +0800 Subject: [PATCH 032/101] Create 1sTry/help(file).png --- 1sTry/help(file).png | Bin 0 -> 60136 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 1sTry/help(file).png diff --git a/1sTry/help(file).png b/1sTry/help(file).png new file mode 100644 index 0000000000000000000000000000000000000000..1083409182159550ceb9352cbe48e51497f2cffa GIT binary patch literal 60136 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 literal 0 HcmV?d00001 From 21a22830d0f276a32c68936e475f0a6e9abb9873 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 22 Oct 2015 00:01:41 +0800 Subject: [PATCH 033/101] Update 1sTry/211_xiao_ri_ji_ren_wu.md --- 1sTry/211_xiao_ri_ji_ren_wu.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/1sTry/211_xiao_ri_ji_ren_wu.md b/1sTry/211_xiao_ri_ji_ren_wu.md index 8977114a5..dc4de1cc0 100644 --- a/1sTry/211_xiao_ri_ji_ren_wu.md +++ b/1sTry/211_xiao_ri_ji_ren_wu.md @@ -20,5 +20,9 @@ -### -填坑 \ No newline at end of file +### 填坑 + + +1.'a' 表示要向文件写入数据,但是添加到当前内容尾部 +> 参考:https://www.ibm.com/developerworks/cn/opensource/os-python8/ + \ No newline at end of file From 340e0c6109bf99cf2bbb2a9e77e15f09489b4f46 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 22 Oct 2015 00:03:53 +0800 Subject: [PATCH 034/101] Update 1sTry/211_xiao_ri_ji_ren_wu.md --- 1sTry/211_xiao_ri_ji_ren_wu.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/1sTry/211_xiao_ri_ji_ren_wu.md b/1sTry/211_xiao_ri_ji_ren_wu.md index dc4de1cc0..2d5e416a2 100644 --- a/1sTry/211_xiao_ri_ji_ren_wu.md +++ b/1sTry/211_xiao_ri_ji_ren_wu.md @@ -19,10 +19,12 @@ - ### 填坑 1.'a' 表示要向文件写入数据,但是添加到当前内容尾部 > 参考:https://www.ibm.com/developerworks/cn/opensource/os-python8/ - \ No newline at end of file + + 2 . 获取时间 + + > 参考:http://justcoding.iteye.com/blog/901758 \ No newline at end of file From 2a4ae949bcc6c51662335bd3570029ba41c7a6c8 Mon Sep 17 00:00:00 2001 From: JQK Date: Thu, 22 Oct 2015 00:06:22 +0800 Subject: [PATCH 035/101] Update 1sTry/211_xiao_ri_ji_ren_wu.md --- 1sTry/211_xiao_ri_ji_ren_wu.md | 50 +++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/1sTry/211_xiao_ri_ji_ren_wu.md b/1sTry/211_xiao_ri_ji_ren_wu.md index 2d5e416a2..99754d67e 100644 --- a/1sTry/211_xiao_ri_ji_ren_wu.md +++ b/1sTry/211_xiao_ri_ji_ren_wu.md @@ -27,4 +27,52 @@ 2 . 获取时间 - > 参考:http://justcoding.iteye.com/blog/901758 \ No newline at end of file + > 参考:http://justcoding.iteye.com/blog/901758 + + + + + + + +### 代码 + +> *# coding:utf-8 #解决中文字符问题 +from sys import argv +import time #导入time 模块 +import os + +script, filename = argv +os.path.isfile(filename) # txt = open(filename) #读取内容需先将其打开 + +print "这是 %r 的内容:" % filename +# print txt.read() #读取内容 + +print "If you don't want that, hit CTRL-C (^C)." +print "IF you do want this, hit return." + +raw_input("?") + +print "Opening the file..." +target = open(filename,"a") # 'a' 表示要向文件写入数据,但是添加到当前内容尾部 + + +print "输入新的内容:" + +content = raw_input("line 1: ") + +T = time .strftime('%Y-%m-%d %A %X %Z', time.localtime()) # 显示当下时间 + +print T + +print "I'm going to write these to the file." + +target.write('\n' + content + '\n' + "---"+ T) + + +print "And finally, we close it." +target = open(filename) + +print target.read() +target.close() +# txt.close() # close 能否不用? \ No newline at end of file From 566cb17e96e90bd3e898b68d91ac8e55278144d7 Mon Sep 17 00:00:00 2001 From: "kangqingjie01@gmail.com" Date: Fri, 23 Oct 2015 22:29:54 +0800 Subject: [PATCH 036/101] =?UTF-8?q?=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py0w/0wex1/main.py | 40 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/_src/om2py0w/0wex1/main.py b/_src/om2py0w/0wex1/main.py index e69de29bb..72b0a099a 100644 --- a/_src/om2py0w/0wex1/main.py +++ b/_src/om2py0w/0wex1/main.py @@ -0,0 +1,40 @@ +# coding:utf-8 #解决中文字符问题 +from sys import argv +import time #导入time 模块 +import os + +script, filename = argv +os.path.isfile(filename) +# txt = open(filename) #读取内容需先将其打开 + +print "这是 %r 的内容:" % filename +# print txt.read() #读取内容 + +print "If you don't want that, hit CTRL-C (^C)." +print "IF you do want this, hit return." + +raw_input("?") + +print "Opening the file..." +target = open(filename,"a") # 'a' 表示要向文件写入数据,但是添加到当前内容尾部 + + +print "输入新的内容:" + +content = raw_input("line 1: ") + +T = time .strftime('%Y-%m-%d %A %X %Z', time.localtime()) # 显示当下时间 + +print T + +print "I'm going to write these to the file." + +target.write('\n' + content + '\n' + "---"+ T) + + +print "And finally, we close it." +target = open(filename) + +print target.read() +target.close() +# txt.close() # close 能否不用? From b3bbb51fae441d0d765128df3def916a299500f8 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:42:38 +0800 Subject: [PATCH 037/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 703189658..ffec720f1 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) - * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) +* [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) From 40f4a20f531f765e4306e2c0d07eafdec7f1f21d Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:42:49 +0800 Subject: [PATCH 038/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index ffec720f1..3956f430d 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,7 +2,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) - * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) +* [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) From 83a80b5d682715a7019d75e5cde5f7aa01557317 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:42:55 +0800 Subject: [PATCH 039/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 3956f430d..31d5abd0e 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,8 +2,8 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) -* [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) +* [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) From 78e3c086880e11c341d8296b991be10087025eb8 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:42:57 +0800 Subject: [PATCH 040/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 31d5abd0e..3956f430d 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,8 +2,8 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) -* [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) +* [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) From f40f49449b282ec939760e7a139707cfc8ef23a2 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:43:17 +0800 Subject: [PATCH 041/101] Update SUMMARY.md From 709bb92773b1c0bbe759fcf0b970b18d7124f856 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:43:20 +0800 Subject: [PATCH 042/101] Update SUMMARY.md From fe337d118122b0b2598b11129d548ec71ad1cf32 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:43:22 +0800 Subject: [PATCH 043/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 3956f430d..acec8fa58 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,8 +1,8 @@ # Summary * [Introduction](README.md) -* [1.教学反转](0MOOC/README.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) +* [1.教学反转](0MOOC/README.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) From f4784523eccb1a6cfdbeb9863852e39a740b44e2 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:43:27 +0800 Subject: [PATCH 044/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index acec8fa58..3956f430d 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,8 +1,8 @@ # Summary * [Introduction](README.md) -* [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [1.教学反转](0MOOC/README.md) +* [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) From ba1bb38c81068c6bf459e213fddb6fa626b1c96d Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:44:26 +0800 Subject: [PATCH 045/101] Update SUMMARY.md From 503ca53142e3ddea5376086f33a226dbfdb1dcf1 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:44:46 +0800 Subject: [PATCH 046/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 3956f430d..47d188648 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,6 +2,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) + * 准备工作 * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) From cda0c4c9044a5aa4354742661dc03ee98e072ade Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:44:59 +0800 Subject: [PATCH 047/101] Create 0MOOC/zhun_bei_gong_zuo.md --- 0MOOC/zhun_bei_gong_zuo.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 0MOOC/zhun_bei_gong_zuo.md diff --git a/0MOOC/zhun_bei_gong_zuo.md b/0MOOC/zhun_bei_gong_zuo.md new file mode 100644 index 000000000..ece818302 --- /dev/null +++ b/0MOOC/zhun_bei_gong_zuo.md @@ -0,0 +1,2 @@ +# 准备工作 + From 807ccf9ee6edb147a6290973cc56f9c612d110d4 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:44:59 +0800 Subject: [PATCH 048/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 47d188648..a705259ae 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,7 +2,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) - * 准备工作 + * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) From da5424fbe410c088d0898fd5fb9ba1edfc457e86 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:45:13 +0800 Subject: [PATCH 049/101] Update 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md --- 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md index 896c7af69..ac1a3bd60 100644 --- a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md +++ b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md @@ -9,7 +9,7 @@ ## 生命不息,折腾不止——科学上网篇 -* +* 不翻墙情况下,试了下Github,可以打开但不流畅,关键是Google&Gmail没法用,不能忍。购买Shadowsocks按照教程安装,Win上可以用各种爽。Ubuntu下配置有点复杂,几经摸索配置妥当就是死活连不上——崩溃(我不是系统)反复检查发现不是设置问题,应该是墙修高了。搜索,发现了一个利器——Lantern,遂用,好使,开心:-D * From f6e75c84f5c2f4411d5c2664fa9459ab015ad8d2 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:45:27 +0800 Subject: [PATCH 050/101] Update 0MOOC/zhun_bei_gong_zuo.md --- 0MOOC/zhun_bei_gong_zuo.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/0MOOC/zhun_bei_gong_zuo.md b/0MOOC/zhun_bei_gong_zuo.md index ece818302..d54614143 100644 --- a/0MOOC/zhun_bei_gong_zuo.md +++ b/0MOOC/zhun_bei_gong_zuo.md @@ -1,2 +1,25 @@ # 准备工作 + +## 生命不息,折腾不止——系统篇 + + * 入班之前就听闻win系统编程不方便,试用几天果不其然,于是,决定装Linux(Ubuntu)。一通折腾,说好的U盘引导安装在我这愣是装不上,誓不罢休,wubi法安装,遂成。种种折磨,就差砸电脑了。 + +* 网上教程很多,但良莠不齐,因为水平差异&脑回路不同有些教程逻辑跳跃,官方Help是大杀器,小白的福利:-D + +## 生命不息,折腾不止——科学上网篇 + +* +不翻墙情况下,试了下Github,可以打开但不流畅,关键是Google&Gmail没法用,不能忍。购买Shadowsocks按照教程安装,Win上可以用各种爽。Ubuntu下配置有点复杂,几经摸索配置妥当就是死活连不上——崩溃(我不是系统)反复检查发现不是设置问题,应该是墙修高了。搜索,发现了一个利器——Lantern,遂用,好使,开心:-D + +* +多巴胺的分泌多寡跟你前期投入多少看来有时候是正相关的 + + + + + + + + + From c9a52534554cf6b7a619a8955665e4632c019f56 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:45:33 +0800 Subject: [PATCH 051/101] Delete 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md --- ...ang_cao_wei_dong_ff0c_bing_ma_xian_xing.md | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md diff --git a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md b/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md deleted file mode 100644 index ac1a3bd60..000000000 --- a/0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md +++ /dev/null @@ -1,25 +0,0 @@ -# Week0:粮草未动,兵马先行 - - -## 生命不息,折腾不止——系统篇 - - * 入班之前就听闻win系统编程不方便,试用几天果不其然,于是,决定装Linux(Ubuntu)。一通折腾,说好的U盘引导安装在我这愣是装不上,誓不罢休,wubi法安装,遂成。种种折磨,就差砸电脑了。 - -* 网上教程很多,但良莠不齐,因为水平差异&脑回路不同有些教程逻辑跳跃,官方Help是大杀器,小白的福利:-D - -## 生命不息,折腾不止——科学上网篇 - -* -不翻墙情况下,试了下Github,可以打开但不流畅,关键是Google&Gmail没法用,不能忍。购买Shadowsocks按照教程安装,Win上可以用各种爽。Ubuntu下配置有点复杂,几经摸索配置妥当就是死活连不上——崩溃(我不是系统)反复检查发现不是设置问题,应该是墙修高了。搜索,发现了一个利器——Lantern,遂用,好使,开心:-D - -* -多巴胺的分泌多寡跟你前期投入多少看来有时候是正相关的 - - - - - - - - - From f07efd3559da5b9f9c413a81f4f2373c1107a532 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:45:33 +0800 Subject: [PATCH 052/101] Update SUMMARY.md --- SUMMARY.md | 1 - 1 file changed, 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index a705259ae..487a4d0e7 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,6 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) -* [Week0:粮草未动,兵马先行](0MOOC/11_week0ff1a_liang_cao_wei_dong_ff0c_bing_ma_xian_xing.md) * [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) From 6c89bbcc1a0d730781fe6781853d783a7e3586b9 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:45:44 +0800 Subject: [PATCH 053/101] Delete 0MOOC/guan_yu_git_zhong_zhong.md --- 0MOOC/guan_yu_git_zhong_zhong.md | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 0MOOC/guan_yu_git_zhong_zhong.md diff --git a/0MOOC/guan_yu_git_zhong_zhong.md b/0MOOC/guan_yu_git_zhong_zhong.md deleted file mode 100644 index 1da9ceb95..000000000 --- a/0MOOC/guan_yu_git_zhong_zhong.md +++ /dev/null @@ -1,2 +0,0 @@ -# 关于Git种种 - From 8e61bb90f458e13f691ef09032fd8ee77d380d42 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:45:45 +0800 Subject: [PATCH 054/101] Update SUMMARY.md --- SUMMARY.md | 1 - 1 file changed, 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 487a4d0e7..5400e4086 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,6 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) -* [关于Git种种](0MOOC/guan_yu_git_zhong_zhong.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) From 4033400cda40a75108cf79968446d48d28206172 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:47:13 +0800 Subject: [PATCH 055/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 5400e4086..12b2477a8 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,6 +3,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) + * Linux command line * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) From 80f5cd9b1452d1811cdfbcbb1019692e78d79149 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:47:18 +0800 Subject: [PATCH 056/101] Create 0MOOC/linux_command_line.md --- 0MOOC/linux_command_line.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 0MOOC/linux_command_line.md diff --git a/0MOOC/linux_command_line.md b/0MOOC/linux_command_line.md new file mode 100644 index 000000000..8c9cad06a --- /dev/null +++ b/0MOOC/linux_command_line.md @@ -0,0 +1,2 @@ +# Linux command line + From e5a21f9ce057bcc9f080e26624bdca2fc16a0723 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:47:18 +0800 Subject: [PATCH 057/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 12b2477a8..08ae75f55 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,7 @@ * [Introduction](README.md) * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) - * Linux command line + * [Linux command line](0MOOC/linux_command_line.md) * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) From 4b12e5d2a5734e19e22d7508cc335414f50da2af Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:48:49 +0800 Subject: [PATCH 058/101] Update 0MOOC/linux_command_line.md --- 0MOOC/linux_command_line.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/0MOOC/linux_command_line.md b/0MOOC/linux_command_line.md index 8c9cad06a..e69de29bb 100644 --- a/0MOOC/linux_command_line.md +++ b/0MOOC/linux_command_line.md @@ -1,2 +0,0 @@ -# Linux command line - From f3defa96b78ec02983545fe993605fb0d1a835d7 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:48:57 +0800 Subject: [PATCH 059/101] Update SUMMARY.md From b24d49d71416caae499778b234b5a9ccf4c713ed Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:50:26 +0800 Subject: [PATCH 060/101] Update 0MOOC/linux_command_line.md --- 0MOOC/linux_command_line.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/0MOOC/linux_command_line.md b/0MOOC/linux_command_line.md index e69de29bb..79bedb588 100644 --- a/0MOOC/linux_command_line.md +++ b/0MOOC/linux_command_line.md @@ -0,0 +1,5 @@ + +# 常用命令 + +> 链接 http://locez.com/Linux/common-command/ + \ No newline at end of file From 279ee4c6e4fce7e1196d30d9852fe17f2aef8a98 Mon Sep 17 00:00:00 2001 From: JQK Date: Sat, 24 Oct 2015 23:52:58 +0800 Subject: [PATCH 061/101] Update 0MOOC/linux_command_line.md --- 0MOOC/linux_command_line.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/0MOOC/linux_command_line.md b/0MOOC/linux_command_line.md index 79bedb588..ae0984296 100644 --- a/0MOOC/linux_command_line.md +++ b/0MOOC/linux_command_line.md @@ -2,4 +2,4 @@ # 常用命令 > 链接 http://locez.com/Linux/common-command/ - \ No newline at end of file + \ No newline at end of file From 690d5ab7e549579dbcfabd0ab92b7d08756b49fd Mon Sep 17 00:00:00 2001 From: "kangqingjie01@gmail.com" Date: Sun, 25 Oct 2015 14:13:14 +0800 Subject: [PATCH 062/101] second --- _src/om2py0w/0wex1/main.py | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/_src/om2py0w/0wex1/main.py b/_src/om2py0w/0wex1/main.py index 72b0a099a..559d4ebc6 100644 --- a/_src/om2py0w/0wex1/main.py +++ b/_src/om2py0w/0wex1/main.py @@ -4,16 +4,22 @@ import os script, filename = argv -os.path.isfile(filename) -# txt = open(filename) #读取内容需先将其打开 - -print "这是 %r 的内容:" % filename -# print txt.read() #读取内容 +E = os.path.exists(filename) #判断filename是否存在 + +if str(E) == 'True': #str 可将数据转化为字符串 + txt = open(filename) #读取内容需先将其打开 + print '这是 %r 的内容:' % filename + print txt.read() # 每次运行自动打印之前的记录 +else: + print '尚无 %r ---创建之...' % filename + + # ---以下输入内容并保存--- + print "If you don't want that, hit CTRL-C (^C)." print "IF you do want this, hit return." -raw_input("?") +raw_input('> ') print "Opening the file..." target = open(filename,"a") # 'a' 表示要向文件写入数据,但是添加到当前内容尾部 @@ -29,7 +35,7 @@ print "I'm going to write these to the file." -target.write('\n' + content + '\n' + "---"+ T) +target.write('\n' + content + '\n' + "---"+ T) print "And finally, we close it." From 7de2108ad5c5c12ae0fd5240e0335b1f66294dde Mon Sep 17 00:00:00 2001 From: JQ-K Date: Sun, 25 Oct 2015 14:23:27 +0800 Subject: [PATCH 063/101] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py0w/0wex1/ex | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 _src/om2py0w/0wex1/ex diff --git a/_src/om2py0w/0wex1/ex b/_src/om2py0w/0wex1/ex new file mode 100644 index 000000000..7791a2e63 --- /dev/null +++ b/_src/om2py0w/0wex1/ex @@ -0,0 +1,13 @@ + +f +---2015-10-25 Sunday 11:14:10 CST +测试2 +---2015-10-25 Sunday 11:21:56 CST +w +---2015-10-25 Sunday 11:27:45 CST +2 +---2015-10-25 Sunday 11:28:51 CST + +---2015-10-25 Sunday 11:29:04 CST +woshi +---2015-10-25 Sunday 14:02:02 CST \ No newline at end of file From 000f9fd94d34f354a692b3d1bf2aeffe58737450 Mon Sep 17 00:00:00 2001 From: JQK Date: Sun, 25 Oct 2015 17:28:35 +0800 Subject: [PATCH 064/101] Update 1sTry/211_xiao_ri_ji_ren_wu.md --- 1sTry/211_xiao_ri_ji_ren_wu.md | 68 +++++++++------------------------- 1 file changed, 18 insertions(+), 50 deletions(-) diff --git a/1sTry/211_xiao_ri_ji_ren_wu.md b/1sTry/211_xiao_ri_ji_ren_wu.md index 99754d67e..646a6afdc 100644 --- a/1sTry/211_xiao_ri_ji_ren_wu.md +++ b/1sTry/211_xiao_ri_ji_ren_wu.md @@ -5,7 +5,7 @@ > 完成一个极简交互式日记系统,需求如下: > * 一次接收输入一行日记 * 保存为本地文件 -* 再次运行系统时,能打印出过往的所有日记 +* 再次运行系统时,能打印出过往的所有日 ### 挖坑: @@ -17,62 +17,30 @@ 4. 文本换行 + 5.打开系统自动打印之前的所有记录,如果没有这个文件进行创建 -### 填坑 +### 基本思路: +>* 代码不只是自己使用,别人第一次运行要确保其能创建一个新的日记文件并且保存 -1.'a' 表示要向文件写入数据,但是添加到当前内容尾部 -> 参考:https://www.ibm.com/developerworks/cn/opensource/os-python8/ - - 2 . 获取时间 - - > 参考:http://justcoding.iteye.com/blog/901758 - - - - - - - -### 代码 +> * 所以代码第一部分需要判断有没有这个日记文件,需要用到 os.path.exists()命令进行判断 -> *# coding:utf-8 #解决中文字符问题 -from sys import argv -import time #导入time 模块 -import os - -script, filename = argv -os.path.isfile(filename) # txt = open(filename) #读取内容需先将其打开 +> * 如果存在打开读取文件不存在创建文件使 if 函数,打开读取使用open/read 命令 -print "这是 %r 的内容:" % filename -# print txt.read() #读取内容 +> 代码如下 -print "If you don't want that, hit CTRL-C (^C)." -print "IF you do want this, hit return." +> coding:utf-8 + from sys import argv + import time + import os + script, filename = argv + E = os.path.exists(filename) + if str(E) == 'True': + print txt.read() + else: + print '尚无 %r ---创建之...' % filename -raw_input("?") - -print "Opening the file..." -target = open(filename,"a") # 'a' 表示要向文件写入数据,但是添加到当前内容尾部 -print "输入新的内容:" - -content = raw_input("line 1: ") - -T = time .strftime('%Y-%m-%d %A %X %Z', time.localtime()) # 显示当下时间 - -print T - -print "I'm going to write these to the file." - -target.write('\n' + content + '\n' + "---"+ T) - - -print "And finally, we close it." -target = open(filename) - -print target.read() -target.close() -# txt.close() # close 能否不用? \ No newline at end of file +>* 第二大块内容是写入需用 raw_input() From bf75b3e73a7bd89a90dbc676d8868e99606c1604 Mon Sep 17 00:00:00 2001 From: JQK Date: Sun, 25 Oct 2015 17:33:11 +0800 Subject: [PATCH 065/101] Update 1sTry/211_xiao_ri_ji_ren_wu.md --- 1sTry/211_xiao_ri_ji_ren_wu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1sTry/211_xiao_ri_ji_ren_wu.md b/1sTry/211_xiao_ri_ji_ren_wu.md index 646a6afdc..305a740ad 100644 --- a/1sTry/211_xiao_ri_ji_ren_wu.md +++ b/1sTry/211_xiao_ri_ji_ren_wu.md @@ -43,4 +43,4 @@ ->* 第二大块内容是写入需用 raw_input() +>* 第二大块内容是写入需用 raw_input(). From d2d06241dd74362dc6de5162d53aa7b19f6bd360 Mon Sep 17 00:00:00 2001 From: JQK Date: Mon, 16 Nov 2015 22:35:12 +0800 Subject: [PATCH 066/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 08ae75f55..dc7e9da06 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -7,6 +7,7 @@ * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) + * 2.2 桌面UI * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From 699d337ca06ffc1afb17859fa7794dac40563247 Mon Sep 17 00:00:00 2001 From: JQK Date: Mon, 16 Nov 2015 22:35:20 +0800 Subject: [PATCH 067/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index dc7e9da06..4c4e53977 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -7,7 +7,7 @@ * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) - * 2.2 桌面UI +* 2.2 桌面UI * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From b8b7bbbd304bde3e4c00e4a53428027b2165c63f Mon Sep 17 00:00:00 2001 From: JQK Date: Mon, 16 Nov 2015 22:35:35 +0800 Subject: [PATCH 068/101] Update SUMMARY.md --- SUMMARY.md | 1 - 1 file changed, 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 4c4e53977..08ae75f55 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -7,7 +7,6 @@ * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) -* 2.2 桌面UI * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From b6c22b552aa2e153b840b8ec78c058129b4c2715 Mon Sep 17 00:00:00 2001 From: JQK Date: Mon, 16 Nov 2015 22:36:17 +0800 Subject: [PATCH 069/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 08ae75f55..e2aff137b 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -7,6 +7,7 @@ * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) + * 2.1.2 桌面UI * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From 690002016cfd58df5a43712ba5879e4fd1e3a462 Mon Sep 17 00:00:00 2001 From: JQK Date: Mon, 16 Nov 2015 22:36:35 +0800 Subject: [PATCH 070/101] Update SUMMARY.md --- SUMMARY.md | 1 - 1 file changed, 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index e2aff137b..08ae75f55 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -7,7 +7,6 @@ * [2. 基础旋进](1sTry/README.md) * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) - * 2.1.2 桌面UI * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From 4c01084423e6bd9e092ce1f99c1f873988b22119 Mon Sep 17 00:00:00 2001 From: JQK Date: Mon, 16 Nov 2015 22:36:46 +0800 Subject: [PATCH 071/101] Delete 1sTry/2.1 kai_shi_bian_cheng.md --- 1sTry/2.1 kai_shi_bian_cheng.md | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 1sTry/2.1 kai_shi_bian_cheng.md diff --git a/1sTry/2.1 kai_shi_bian_cheng.md b/1sTry/2.1 kai_shi_bian_cheng.md deleted file mode 100644 index fd3842d6a..000000000 --- a/1sTry/2.1 kai_shi_bian_cheng.md +++ /dev/null @@ -1,2 +0,0 @@ -# 开始编程 - From 50d61d9adc10efeba927734e077c535ab8f81f23 Mon Sep 17 00:00:00 2001 From: JQK Date: Mon, 16 Nov 2015 22:36:48 +0800 Subject: [PATCH 072/101] Update SUMMARY.md --- SUMMARY.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/SUMMARY.md b/SUMMARY.md index 08ae75f55..4bf1b574a 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -5,8 +5,6 @@ * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) * [2. 基础旋进](1sTry/README.md) - * [2.1 开始编程](1sTry/2.1 kai_shi_bian_cheng.md) - * [2.1.1 小日记任务](1sTry/211_xiao_ri_ji_ren_wu.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) * [代码 (_src)](_src/README.md) From 149a7e06b713956926866be8d0a849765f980dc7 Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 21:59:00 +0800 Subject: [PATCH 073/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 4bf1b574a..790044e1e 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -4,6 +4,7 @@ * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) + * 随手记 * [2. 基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From ff5170f214905ebc4a6f036d755f5406762bff6b Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 21:59:20 +0800 Subject: [PATCH 074/101] Update SUMMARY.md --- SUMMARY.md | 1 - 1 file changed, 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 790044e1e..4bf1b574a 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -4,7 +4,6 @@ * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) - * 随手记 * [2. 基础旋进](1sTry/README.md) * [迭代作品](2nDev/README.md) * [人生首秀](3rDemo/README.md) From f8b8625291fb35cbceb8bc1b6e680aea5583abfc Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:00:13 +0800 Subject: [PATCH 075/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 4bf1b574a..20250ea9a 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,6 +1,7 @@ # Summary * [Introduction](README.md) + * 随手记 * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From 5ee7fcf652396eac7a582dbdf9026666fc9328c3 Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:00:52 +0800 Subject: [PATCH 076/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 20250ea9a..2d385386e 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,7 +1,7 @@ # Summary * [Introduction](README.md) - * 随手记 +* 随手记 * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From 5f626bd4f1fe81dd08fff9b966b980e0b1ac1278 Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:01:02 +0800 Subject: [PATCH 077/101] Create sui_shou_ji.md --- sui_shou_ji.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sui_shou_ji.md diff --git a/sui_shou_ji.md b/sui_shou_ji.md new file mode 100644 index 000000000..e0bc1ad09 --- /dev/null +++ b/sui_shou_ji.md @@ -0,0 +1,2 @@ +# 随手记 + From 3e42b48db61f578b7ceaf13e0ebeee3532791ae4 Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:01:07 +0800 Subject: [PATCH 078/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 2d385386e..726a1b080 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -1,7 +1,7 @@ # Summary * [Introduction](README.md) -* 随手记 +* [随手记](sui_shou_ji.md) * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From 37a8a1b732fc0eb796ae7708e64708fcbf0f43fb Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:02:35 +0800 Subject: [PATCH 079/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 726a1b080..01ded414a 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,6 +2,7 @@ * [Introduction](README.md) * [随手记](sui_shou_ji.md) + * 异常 * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From 78cfb80471dcf752ef0e8a690336de08a7c08447 Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:03:22 +0800 Subject: [PATCH 080/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 01ded414a..5f4159720 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -2,7 +2,7 @@ * [Introduction](README.md) * [随手记](sui_shou_ji.md) - * 异常 + * Python异常处理 * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From 2df0e82f5703cd6d4a84e1e8cdcbe0fe6cb9524c Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:04:12 +0800 Subject: [PATCH 081/101] Update sui_shou_ji.md --- sui_shou_ji.md | 124 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/sui_shou_ji.md b/sui_shou_ji.md index e0bc1ad09..ba0ebea36 100644 --- a/sui_shou_ji.md +++ b/sui_shou_ji.md @@ -1,2 +1,126 @@ # 随手记 +try +捕获由Python或程序本身引发的异常 +raise +手工地引发一个异常 +为什么要使用异常 + +错误处理,当python检查以程序运行时的错误就引发异常,你可以在程序里捕捉和处理这些错误,或者忽略它们。 +事件通知,异常也可以作为某种条件的信号,而不需要在程序里传送结果标志或显式地测试它们。 +特殊情形处理,有时有些情况是很少发生的,把相应的处理代码改为异常处理会更好一些。 +奇特的控制流,异常是一个高层次的"goto",可以把它作为实现奇特的控制流的基础。如反向跟踪等。 +异常的基础知识 + +python的try语句有两种风格---一种是处理异常(try/except/else),一种是无论是否发生异常都将执行最后的代码(try/finally)。 + +try/except/else风格 + + try: + <语句> #运行别的代码 + except <名字>: + <语句> #如果在try部份引发了'name'异常 + except <名字>,<数据>: + <语句> #如果引发了'name'异常,获得附加的数据 + else: + <语句> #如果没有异常发生 + +try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句先执行,接下来会发生什么依赖于执行时是否出现异常。 + +如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。 +如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。 +如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。 +try/finally风格 + + try: + <语句> + finally: + <语句> #退出try时总会执行 + raise + +python总会执行finally子句,无论try子句执行时是否发一异常。 + +如果没有发生异常,python运行try子句,然后是finally子句,然后继续。 +如果在try子句发生了异常,python就会回来执行finally子句,然后把异常递交给上层try,控制流不会通过整个try语句。 +当你想无论是否发生异常都确保执行某些代码时,try/finally是有用的。 + +raise + +要引发异常,你需要写raise语句,它的形式很简单,raise后面跟着要引发的异常。 + + raise #手工地引发异常 + raise , #传递一个附加的数据 + +什么是异常名(name)呢?它也许是内置作用域内的内置异常(如IndexError),或者是你程序中的任意字符串对象。 + +缺省行为:显示错误信息。 + + $ python test.py + Traceback (innermost last): + File "test.py", line 3, in ? + a = 1 /0 + ZeroDivisionError: integer division or modulo + +当一个未捕获的异常发生时,python将结束程序并打印一个堆栈跟踪信息,以及异常名和附加信息。 + +用try捕获内置异常 + +如果你不想在异常发生时结束你的程序,只需在try里捕获它。 + + #!/usr/bin/python + try: + a = 1 /0 + print a + except: + print 'i get the error' + +当程序运行是会捕获一个错误并执行except后面的代码。 + +异常的惯用法 + +异常并不总是坏事情,例如,文件对象的read方法在文件尾时返回一个空串,python也提供一个内置函数raw_input,它从标准输入流读入。与read方法不同,当遇到文件尾时,raw_input()引发内置的EOFError错误。所以可以这样用: + + while 1: + try: + line = raw_input() #从stdin读入行 + except EOFError: + break #在文件末尾退出循环 + esle: + # 其它处理代码 + +用异常传递成功的信号 + + Found = 'item found' + def search(): + 引发或返回Found + try: + search() + except Found: + successful + else: + fail + +可以使用try来调试代码,你可以用自已的异常处理替换python缺省的异常处理。把整个程序封装在一个外部try里面,你可以捕获运行时的任何异常。 + +异常捕获模式 + + try语句子句形式表 + except: 捕获所有异常 + except name: 只捕获特定的异常 + except name,value: 捕获异常和它的附加数据 + except (name1,name2): 捕获任何列出的异常 + else: 如果没有异常 + finally: 总是执行 + +捕获多个异常中的一个,python从上到下地查看except子句,括号里列出多个异常与列出单独的异常是一样的,只是更简洁一些。 + +运行时嵌套的异常,python会匹配最近的except。 + +finally子句无论如何都会执行,所以它是做清除动作的好地方,如关闭一个文件的操作。 + +捕捉所有异常 + +try: + # 你的代码 +except BaseException, e: + print(str(e)) From f9efa096edecbc46a2b72e90c7289f2a177bd9aa Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:34:11 +0800 Subject: [PATCH 082/101] Update SUMMARY.md --- SUMMARY.md | 1 + 1 file changed, 1 insertion(+) diff --git a/SUMMARY.md b/SUMMARY.md index 5f4159720..c10c77bd9 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,6 +3,7 @@ * [Introduction](README.md) * [随手记](sui_shou_ji.md) * Python异常处理 + * Python socket(插座) network programming * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From fb278e8d3e5d93f8eb72fb8ad3d005d0dcfa9cf8 Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:34:27 +0800 Subject: [PATCH 083/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index c10c77bd9..c604bd974 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,7 @@ * [Introduction](README.md) * [随手记](sui_shou_ji.md) * Python异常处理 - * Python socket(插座) network programming + * Python socket network programming * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From 670ab22bbc7f64b2bb81c32d24a2bda6179d050b Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:34:36 +0800 Subject: [PATCH 084/101] Create python_socket_network_programming.md --- python_socket_network_programming.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 python_socket_network_programming.md diff --git a/python_socket_network_programming.md b/python_socket_network_programming.md new file mode 100644 index 000000000..fcde05526 --- /dev/null +++ b/python_socket_network_programming.md @@ -0,0 +1,2 @@ +# Python socket network programming + From af3c6491467c911837ccb3088469d5dcdf7843d7 Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:34:44 +0800 Subject: [PATCH 085/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index c604bd974..41e0c79fe 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,7 @@ * [Introduction](README.md) * [随手记](sui_shou_ji.md) * Python异常处理 - * Python socket network programming + * [Python socket network programming](python_socket_network_programming.md) * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From ffec16d0ded863d6382601f391898b6e1b0d0656 Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:34:46 +0800 Subject: [PATCH 086/101] Update SUMMARY.md --- SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SUMMARY.md b/SUMMARY.md index 41e0c79fe..c604bd974 100644 --- a/SUMMARY.md +++ b/SUMMARY.md @@ -3,7 +3,7 @@ * [Introduction](README.md) * [随手记](sui_shou_ji.md) * Python异常处理 - * [Python socket network programming](python_socket_network_programming.md) + * Python socket network programming * [1.教学反转](0MOOC/README.md) * [准备工作](0MOOC/zhun_bei_gong_zuo.md) * [Linux command line](0MOOC/linux_command_line.md) From 53d80698fede71a123937d7a8a0d8cec2bc6325d Mon Sep 17 00:00:00 2001 From: JQK Date: Tue, 17 Nov 2015 22:37:11 +0800 Subject: [PATCH 087/101] Update python_socket_network_programming.md --- python_socket_network_programming.md | 1 + 1 file changed, 1 insertion(+) diff --git a/python_socket_network_programming.md b/python_socket_network_programming.md index fcde05526..5b981bb9a 100644 --- a/python_socket_network_programming.md +++ b/python_socket_network_programming.md @@ -1,2 +1,3 @@ # Python socket network programming +](http://pythontips.com/2013/08/06/python-socket-network-programming/) \ No newline at end of file From 2d187d12811f60572e634db360f05964e483f408 Mon Sep 17 00:00:00 2001 From: JQK Date: Fri, 1 Apr 2016 22:41:32 +0800 Subject: [PATCH 088/101] events and bindings --- _src/om2py0w/0wex1/gui/bind.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 _src/om2py0w/0wex1/gui/bind.py diff --git a/_src/om2py0w/0wex1/gui/bind.py b/_src/om2py0w/0wex1/gui/bind.py new file mode 100644 index 000000000..e040c1999 --- /dev/null +++ b/_src/om2py0w/0wex1/gui/bind.py @@ -0,0 +1,12 @@ +from Tkinter import * + +root = Tk() + +def callback(event): + print "clicked at", event.x, event.y + +frame = Frame(root, width=100, height=100) +frame.bind("", callback) +frame.pack() + +root.mainloop() \ No newline at end of file From 62cb1eb61b200182d94eea5f3ae4cb38a36f6a2e Mon Sep 17 00:00:00 2001 From: JQK Date: Fri, 1 Apr 2016 22:42:41 +0800 Subject: [PATCH 089/101] examples --- _src/om2py0w/0wex1/gui/hello1.py | 8 ++++++++ _src/om2py0w/0wex1/gui/hello2.py | 26 ++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 _src/om2py0w/0wex1/gui/hello1.py create mode 100644 _src/om2py0w/0wex1/gui/hello2.py diff --git a/_src/om2py0w/0wex1/gui/hello1.py b/_src/om2py0w/0wex1/gui/hello1.py new file mode 100644 index 000000000..85b349e85 --- /dev/null +++ b/_src/om2py0w/0wex1/gui/hello1.py @@ -0,0 +1,8 @@ +from Tkinter import * + +root = Tk() #You should only create one root widget for each program, and it must be created before any other widgets. + +w = Label(root, text="Hello, world!") #create a Label widget as a child to the root window: +w.pack() + +root.mainloop() \ No newline at end of file diff --git a/_src/om2py0w/0wex1/gui/hello2.py b/_src/om2py0w/0wex1/gui/hello2.py new file mode 100644 index 000000000..7e0865b53 --- /dev/null +++ b/_src/om2py0w/0wex1/gui/hello2.py @@ -0,0 +1,26 @@ +from Tkinter import * + +class App: + + def __init__(self, master): + + frame = Frame(master) + frame.pack() + + self.button = Button( + frame, text="QUIT", fg="red", command=frame.quit + ) + self.button.pack(side=LEFT) + + self.hi_there = Button(frame, text="Hello", command=self.say_hi) + self.hi_there.pack(side=LEFT) + + def say_hi(self): + print "hi there, everyone!" + +root = Tk() + +app = App(root) + +root.mainloop() +root.destroy() # optional; see description below \ No newline at end of file From aaee6e23d6101767d98ccffcc3688a7d1f551c4a Mon Sep 17 00:00:00 2001 From: JQK Date: Sun, 3 Apr 2016 12:34:08 +0800 Subject: [PATCH 090/101] update --- _src/om2py0w/0wex1/mytkinter.py | 42 +++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 _src/om2py0w/0wex1/mytkinter.py diff --git a/_src/om2py0w/0wex1/mytkinter.py b/_src/om2py0w/0wex1/mytkinter.py new file mode 100644 index 000000000..d45a2da47 --- /dev/null +++ b/_src/om2py0w/0wex1/mytkinter.py @@ -0,0 +1,42 @@ +# coding=utf-8 +from Tkinter import * +import sys +reload(sys) +sys.setdefaultencoding('utf-8') +from jqk_dairy import * + +root = Tk() +root.title("kang's diary") +root.geometry('400x400') +w = Label(root, text="Welcom to kang's diary", pady=20) + +w.pack() + +var = StringVar(value="What do you want to write today?") + +text_input = Entry(root, textvariable=var,width=36) +text_input.pack() + +def print_content(): + append_text(var.get()) + text_output.config(text=get_text()) + var.set('') + +#text_input = Entry(root) +#text_input.insert(0, "Hi, what's up") +#text_input.pack() + +#def print_content(): + #print text_input.get() + #text_input.delete(0,'end') + +button = Button(root, text="print", command=print_content) +button.pack() + +root.bind('', lambda event:print_content()) + +text_output = Message(root, textvariable=var, width=360,pady=20) +text_output.pack() + + +root.mainloop() \ No newline at end of file From 815e9f613a578abcb078ba53ffbeaff7dc53c70d Mon Sep 17 00:00:00 2001 From: JQK Date: Sun, 3 Apr 2016 16:49:33 +0800 Subject: [PATCH 091/101] update2 --- _src/om2py0w/0wex1/mytkinter.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_src/om2py0w/0wex1/mytkinter.py b/_src/om2py0w/0wex1/mytkinter.py index d45a2da47..3f575b330 100644 --- a/_src/om2py0w/0wex1/mytkinter.py +++ b/_src/om2py0w/0wex1/mytkinter.py @@ -6,13 +6,13 @@ from jqk_dairy import * root = Tk() -root.title("kang's diary") -root.geometry('400x400') -w = Label(root, text="Welcom to kang's diary", pady=20) +root.title("kang's diary")#命名 +root.geometry('400x400')#尺寸 +w = Label(root, text="Welcom to kang's diary", pady=20)#输入框的设置 -w.pack() +w.pack()#显示输入框 -var = StringVar(value="What do you want to write today?") +var = StringVar(value="What do you want to write today?")#字符变量StringVar跟踪变量值的变化 text_input = Entry(root, textvariable=var,width=36) text_input.pack() From cd71bdf0ac569e74cc327f19fcbe867746d760d8 Mon Sep 17 00:00:00 2001 From: JQK Date: Sun, 3 Apr 2016 17:30:01 +0800 Subject: [PATCH 092/101] =?UTF-8?q?good=20=E7=AE=80=E6=B4=81=E7=89=88?= =?UTF-8?q?=E6=9C=AC=20=E5=88=A9=E7=94=A8=E4=BA=86Text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py0w/0wex1/mytkinter2.py | 37 ++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 _src/om2py0w/0wex1/mytkinter2.py diff --git a/_src/om2py0w/0wex1/mytkinter2.py b/_src/om2py0w/0wex1/mytkinter2.py new file mode 100644 index 000000000..1b7e9884d --- /dev/null +++ b/_src/om2py0w/0wex1/mytkinter2.py @@ -0,0 +1,37 @@ +# coding=utf-8 + +import sys +reload(sys) +sys.setdefaultencoding('utf-8') + +import Tkinter as tk +from jqk_dairy import * + + +def enter_and_print(event): + append_text(var.get()) + text_output.delete(0.0,'end') + text_output.insert(0.0,get_text()) + var.set('') + + +root = tk.Tk() +root.title("kang's diary") + +var = tk.StringVar(value="What do you want to write today?") + +text_input = tk.Entry(root, textvariable=var, width=36, bd=5) +text_input.pack() + +root.bind('', enter_and_print) + +text_output = tk.Text(root,width=46) +text_output.pack(side='left', fill='y') + +s =tk.Scrollbar(root) +s.pack(side='right', fill='y') + +s.config(command=text_output.yview) +text_output.config(yscrollcommand=s.set) + +root.mainloop() \ No newline at end of file From 20d30bf0ab7e1a17b5f4fdd0a5eda689373f7b38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Mon, 30 May 2016 20:41:17 +0800 Subject: [PATCH 093/101] =?UTF-8?q?=E5=8F=82=E8=80=83=E5=88=AB=E4=BA=BA?= =?UTF-8?q?=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py3w/3wex0/main_s.py | 19 +++++++++++++++++++ _src/om2py3w/3wex0/server1.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 _src/om2py3w/3wex0/main_s.py create mode 100644 _src/om2py3w/3wex0/server1.py diff --git a/_src/om2py3w/3wex0/main_s.py b/_src/om2py3w/3wex0/main_s.py new file mode 100644 index 000000000..d80d884ce --- /dev/null +++ b/_src/om2py3w/3wex0/main_s.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +import socket +import sys,codecs +reload(sys) +sys.setdefaultencoding('GB2312') + +UDP_IP = "127.0.0.1" +UDP_PORT = 5005 + +def server_con(): + sock = socket.socket(socket.AF_INET, # Internet + socket.SOCK_DGRAM) # UDP + sock.bind((UDP_IP, UDP_PORT)) + data, addr = sock.recvfrom(1024) # buffer size is 1024 bytes + print "已接收信息:", data, "来自", addr + + +while True: + server_con() diff --git a/_src/om2py3w/3wex0/server1.py b/_src/om2py3w/3wex0/server1.py new file mode 100644 index 000000000..3e2a0c319 --- /dev/null +++ b/_src/om2py3w/3wex0/server1.py @@ -0,0 +1,29 @@ +# coding:utf-8 +import socket +import sys + + +host = '127.0.0.1' +port = 5678 + +def server_con(): + + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 创建对象 + + s.bind((host, port))#绑定端口 + + s.listen(1)#监听连接 + + + clientSocket,clientAdrr = s.accept()#接受请求 + + print 'Client conneted!' + ip = raw_input() + + clientSocket.sendall(ip)#数据收发(怎么让 client 连续接受?) + data, addr = s.recvfrom(1024) + print "已接受信息:", data, "来自:",addr + + clientSocket.close()#关闭端口 +while True: + server_con() \ No newline at end of file From 6942d888b4569822d266a075993e478564b84535 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Mon, 30 May 2016 21:14:32 +0800 Subject: [PATCH 094/101] what --- _src/om2py3w/3wex0/c1.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 _src/om2py3w/3wex0/c1.py diff --git a/_src/om2py3w/3wex0/c1.py b/_src/om2py3w/3wex0/c1.py new file mode 100644 index 000000000..70c75bcba --- /dev/null +++ b/_src/om2py3w/3wex0/c1.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +import socket +import sys,codecs +reload(sys) +sys.setdefaultencoding('GB2312') #在CMD中运行编码为GB2312,在Python中应修改为UTF-8 + +UDP_IP = "127.0.0.1" +UDP_PORT = 9527 +ip_address = (UDP_IP,UDP_PORT) + + +def main(): + sock = socket.socket(socket.AF_INET, # Internet地址族 + socket.SOCK_DGRAM) # UDP协议 + + print ''' + 欢迎来到*** %s的日记本--******** + 输入‘r’---载入历史记录 + + '''%UDP_IP + MESSAGE = raw_input("写点什么呢:") #一次只能一行内容 + + if MESSAGE == 'r': + print "正在打开日志……" + sock.sendto(MESSAGE,ip_address)#发送信息到服务端 + print sock.recv(1024)#接受服务端回馈的信息 + + else: + sock.sendto(MESSAGE,ip_address) + print "UDP target IP:", UDP_IP + print "UDP target port:", UDP_PORT + print "已发送信息:", MESSAGE + +while 1: + main() \ No newline at end of file From af5d866cc09d47ba838bb1133e6607563f365ad9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Mon, 30 May 2016 21:22:13 +0800 Subject: [PATCH 095/101] =?UTF-8?q?bottle=20de=E7=94=A8=E6=B3=95=20?= =?UTF-8?q?=E6=9D=A5=E8=87=AA=E5=A4=A7=E5=A6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py4w/4wex0/hallo.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 _src/om2py4w/4wex0/hallo.py diff --git a/_src/om2py4w/4wex0/hallo.py b/_src/om2py4w/4wex0/hallo.py new file mode 100644 index 000000000..38ef6080d --- /dev/null +++ b/_src/om2py4w/4wex0/hallo.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +from bottle import * +@route('/') +def index(): + return 'Hallo World!' +run(host='127.0.0.1', port=8082,reloader=True) + From 96921bb7594676fbf3b23d12d1cf6acd3fed7807 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Mon, 30 May 2016 21:33:34 +0800 Subject: [PATCH 096/101] =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py4w/README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/_src/om2py4w/README.md b/_src/om2py4w/README.md index a2a1c659a..1a3ffaab0 100644 --- a/_src/om2py4w/README.md +++ b/_src/om2py4w/README.md @@ -5,4 +5,11 @@ - 私人笔记: + SAE 发布服务 + web 页面端口 - + 用户认证 \ No newline at end of file + + 用户认证 + +- 任务: + + 没错运行合理打印出过往所用的笔记 + + 一次接收一行笔记 + + 在服务端保存为文件 + + + 同时兼容 3w 的 Net 版本的命令行界面进行交 \ No newline at end of file From 526e5fb83c3b8598644d356ba3904bed8d344e0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Thu, 2 Jun 2016 22:43:05 +0800 Subject: [PATCH 097/101] =?UTF-8?q?=E2=80=9C=E5=AE=A2=E6=88=B7=E7=AB=AF?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py4w/4wex0/client/jclient.py | 37 ++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 _src/om2py4w/4wex0/client/jclient.py diff --git a/_src/om2py4w/4wex0/client/jclient.py b/_src/om2py4w/4wex0/client/jclient.py new file mode 100644 index 000000000..6b1c31694 --- /dev/null +++ b/_src/om2py4w/4wex0/client/jclient.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- +import requests +from bs4 import BeautifulSoup + +def main(): + print 'Type "q" or "quit" to exit.' + print 'Type "l" or "list" to view all the notes.' + print 'Type anything else as a new note.' + + while True: + INPUT = raw_input('$ ').strip() + inp = INPUT.lower() + if inp in ['quit','q']: + break + elif inp in ['list','l']: + print listnotes() + else: + addnote(INPUT) + + +def addnote(note): + requests.post('http://localhost:8080/note', data = {'newnote':note}) + print 'note added!' + +def listnotes(): + r = requests.get('http://localhost:8080/note') + soup = BeautifulSoup(r.text, 'html.parser') + lis = soup.find_all('p') + notes = '' + for i in lis: + notes += i.get_text()+'\n' + return notes + +if __name__ == '__main__': + main() + From 88e8e12e3d4cfde656ba2b357fb4c6f2b12cb58e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Sat, 4 Jun 2016 00:36:38 +0800 Subject: [PATCH 098/101] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=A3=E8=AF=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py4w/4wex0/client/jclient.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_src/om2py4w/4wex0/client/jclient.py b/_src/om2py4w/4wex0/client/jclient.py index 6b1c31694..f7de9e7fc 100644 --- a/_src/om2py4w/4wex0/client/jclient.py +++ b/_src/om2py4w/4wex0/client/jclient.py @@ -1,7 +1,7 @@ #!/usr/bin/env python #-*- coding: utf-8 -*- -import requests -from bs4 import BeautifulSoup +import requests #requests 使用说明http://docs.python-requests.org/en/master/ +from bs4 import BeautifulSoup #beautifulsoup :https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/ def main(): print 'Type "q" or "quit" to exit.' @@ -9,11 +9,11 @@ def main(): print 'Type anything else as a new note.' while True: - INPUT = raw_input('$ ').strip() - inp = INPUT.lower() - if inp in ['quit','q']: + INPUT = raw_input('$ ').strip()#$是输入前的指示符,strip()消除字符两端的空格 + inp = INPUT.lower()#大写转小写 + if inp in ['quit','q']:#设置关键词 break - elif inp in ['list','l']: + elif inp in ['list','l']:#设置关键词 print listnotes() else: addnote(INPUT) From 8e675e82b0053fbac5dea6460b1e50f455616440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Sat, 4 Jun 2016 20:03:16 +0800 Subject: [PATCH 099/101] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _src/om2py4w/4wex0/server/jserver.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 _src/om2py4w/4wex0/server/jserver.py diff --git a/_src/om2py4w/4wex0/server/jserver.py b/_src/om2py4w/4wex0/server/jserver.py new file mode 100644 index 000000000..eca264556 --- /dev/null +++ b/_src/om2py4w/4wex0/server/jserver.py @@ -0,0 +1,26 @@ +#/usr/bin/env python +# -*- coding: utf-8 -*- + +from bottle import get, post, request, run, jinja2_view +#import sae.kvdb +from datetime import datetime +import jnote + +@get('/note') +@jinja2_view('jnote.html') +def ShowPage(): + notes = jnote.GetNotes() + return {'notes':notes} + +@post('/note') +@jinja2_view('jnote.html') +def CreatNote(): + note = unicode(request.forms.get('newnote'),'utf-8') + + if note: + jnote.NewNote(note) + notes = jnote.GetNotes() + + return {'notes': notes} + +run (host='127.0.0.1', port=8080, debug=True, reloader=True) From 79a68187148596a79415472d9f7e6b4390c657dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Sat, 4 Jun 2016 20:04:10 +0800 Subject: [PATCH 100/101] note --- _src/om2py4w/4wex0/server/jnote.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 _src/om2py4w/4wex0/server/jnote.py diff --git a/_src/om2py4w/4wex0/server/jnote.py b/_src/om2py4w/4wex0/server/jnote.py new file mode 100644 index 000000000..6c2ab11c4 --- /dev/null +++ b/_src/om2py4w/4wex0/server/jnote.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# SQLite 数据库版 +from os.path import exists +import sqlite3 +from datetime import datetime + +dbfilename = "webnotes.db" + +def NewNote(note): + con = sqlite3.connect(dbfilename) + time = str(datetime.now())[:19] # 去掉秒数的小数部分 + with con: + cur = con.cursor() + cur.execute("CREATE TABLE IF NOT EXISTS Notes(Id INTEGER PRIMARY KEY, Time TEXT, Content TEXT)") + cur.execute("INSERT INTO Notes(Time, Content) VALUES(?,?)", (time, note)) + +def GetNotes(): # 返回全部笔记的列表 + if exists(dbfilename): + con = sqlite3.connect(dbfilename) + allnotes = [] + with con: + con.row_factory = sqlite3.Row + cur = con.cursor() + cur.execute("SELECT * FROM Notes") + rows = cur.fetchall() + for row in rows: + allnotes.append('%s %s' % (row['Time'], row['Content'])) + return allnotes + else: + return ['No data on server'] \ No newline at end of file From 9ce0b52d733f086bcd1bbee90536875da494033c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?JQK=E2=94=8F=20=28=E3=82=9C=CF=89=E3=82=9C=29=3D=E2=98=9E?= Date: Sat, 4 Jun 2016 20:04:57 +0800 Subject: [PATCH 101/101] html --- _src/om2py4w/4wex0/server/views/jnote.html | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 _src/om2py4w/4wex0/server/views/jnote.html diff --git a/_src/om2py4w/4wex0/server/views/jnote.html b/_src/om2py4w/4wex0/server/views/jnote.html new file mode 100644 index 000000000..0984b9dd8 --- /dev/null +++ b/_src/om2py4w/4wex0/server/views/jnote.html @@ -0,0 +1,96 @@ + + + + + + + + + + + Easynote-WEB + + + + + + + + + + + + +
+ +
+
+ +
+
+ +
+ {% for note in notes %} +

{{note}}

+ {% endfor %} +
+ +
+ + + + + + + + + + \ No newline at end of file