diff --git "a/Day01-15/01.\345\210\235\350\257\206Python.md" "b/Day01-15/01.\345\210\235\350\257\206Python.md" index 1d21ea00bba22fb66ec418c4dc54993191099834..1eb9dd63eb3acc084150e003bd1a21d17facf264 100644 --- "a/Day01-15/01.\345\210\235\350\257\206Python.md" +++ "b/Day01-15/01.\345\210\235\350\257\206Python.md" @@ -190,11 +190,11 @@ pip3 install ipython ![](./res/python-ipython.png) -#### Sublime - 高级文本编辑器 +#### Sublime Text - 高级文本编辑器 ![](./res/python-sublime.png) -- 首先可以通过[官方网站](https://www.sublimetext.com/)下载安装程序安装Sublime 3或Sublime 2。 +- 首先可以通过[官方网站](https://www.sublimetext.com/)下载安装程序安装Sublime Text 3或Sublime Text 2。 - 安装包管理工具。 1. 通过快捷键Ctrl+`或者在View菜单中选择Show Console打开控制台,输入下面的代码。 @@ -209,9 +209,7 @@ pip3 install ipython ```Python import urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation') ``` - 2. 手动安装浏览器输入 https://sublime.wbond.net/Package%20Control.sublime-package 下载这个文件 - 下载好以后,打开sublime text,选择菜单Preferences->Browse Packages... 打开安装目录 - 此时会进入到一个叫做Packages的目录下,点击进入上一层目录Sublime Text3,在此目录下有一个文件夹叫做Installed Packages,把刚才下载的文件放到这里就可以了。然后重启sublime text3,观察Preferences菜单最下边是否有Package Settings 和Package Control两个选项,如果有,则代表安装成功了。 + 2. 在浏览器中输入 https://sublime.wbond.net/Package%20Control.sublime-package 下载包管理工具的安装包,并找到安装Sublime目录下名为"Installed Packages"的目录,把刚才下载的文件放到这个文件加下,然后重启Sublime Text就搞定了。 - 安装插件。通过Preference菜单的Package Control或快捷键Ctrl+Shift+P打开命令面板,在面板中输入Install Package就可以找到安装插件的工具,然后再查找需要的插件。我们推荐大家安装以下几个插件: @@ -222,7 +220,7 @@ pip3 install ipython - Python PEP8 Autoformat - PEP8规范自动格式化插件。 - ConvertToUTF8 - 将本地编码转换为UTF-8。 -> 说明:事实上[Visual Studio Code]()可能是更好的选择,它不用花钱并提供了更为完整和强大的功能,有兴趣的读者可以自行研究。 +> 说明:事实上[Visual Studio Code]()可能是更好的选择,它不用花钱并提供了更为完整和强大的功能,有兴趣的读者可以自行研究。 #### PyCharm - Python开发神器 diff --git "a/Day01-15/02.\350\257\255\350\250\200\345\205\203\347\264\240.md" "b/Day01-15/02.\350\257\255\350\250\200\345\205\203\347\264\240.md" index b2911f8cc06fb408997f8415cb86c5c2c7fc403e..6e60d9979cb3b5d3838c3897c968cda3f7034a04 100644 --- "a/Day01-15/02.\350\257\255\350\250\200\345\205\203\347\264\240.md" +++ "b/Day01-15/02.\350\257\255\350\250\200\345\205\203\347\264\240.md" @@ -96,7 +96,7 @@ print(type(d)) print(type(e)) ``` -> 说明:上面的代码中用到了Python中的内置函数,如果暂时不理解函数这个概念也不要紧,我们会在后续的内容中专门讲解Python中函数的使用。 +> 说明:上面的代码中用到了Python中的内置函数`type`来获得变量的数据类型,程序设计中函数的概念跟数学上函数的概念是一致的,数学上的函数相信大家并不陌生,它包括了函数名、自变量和因变量。如果暂时不理解这个概念也不要紧,我们会在后续的章节中专门讲解函数的定义和使用。 在对变量类型进行转换时可以使用Python的内置函数。 @@ -129,39 +129,53 @@ Python支持多种运算符,下表大致按照优先级从高到低的顺序 >**说明:** 在实际开发中,如果搞不清楚运算符的优先级,可以使用括号来确保运算的执行顺序。 -下面的例子演示了运算符的使用。 +下面的例子演示了赋值运算符和算术运算符的使用。 ```Python """ -运算符的使用 +赋值和算术运算符的使用 Version: 0.1 Author: 骆昊 """ -a = 5 -b = 10 -c = 3 -d = 4 -e = 5 -a += b -a -= c -a *= d -a /= e -print("a = ", a) +a = 10 +b = 3 +print(a + b) # 13 +print(a - b) # 7 +print(a * b) # 30 +print(a / b) # 3.3333333333333335 +print(a // b) # 3 +print(a ** b) # 1000 +print((a - 1) ** 0.5) # 3.0 +c = 4 +c += b # 相当于:c = c + b +c *= a + 2 # 相当于:c = c * (a + 2) +print(c) # 想想这个地方是多少 +``` + +下面的例子演示了比较运算符(关系运算符)、逻辑运算符和身份运算符的使用。 + +```Python +""" +比较、逻辑和算身份运算符的使用 + +Version: 0.1 +Author: 骆昊 +""" flag1 = 3 > 2 flag2 = 2 < 1 flag3 = flag1 and flag2 flag4 = flag1 or flag2 flag5 = not flag1 -print("flag1 = ", flag1) -print("flag2 = ", flag2) -print("flag3 = ", flag3) -print("flag4 = ", flag4) -print("flag5 = ", flag5) -print(flag1 is True) -print(flag2 is not False) +print("flag1 = ", flag1) # flag1 = True +print("flag2 = ", flag2) # flag2 = False +print("flag3 = ", flag3) # flag3 = False +print("flag4 = ", flag4) # flag4 = True +print("flag5 = ", flag5) # flag5 = False +print(flag1 is True) # True +print(flag2 is not False) # False ``` ### 练习 diff --git "a/Day01-15/03.\345\210\206\346\224\257\347\273\223\346\236\204.md" "b/Day01-15/03.\345\210\206\346\224\257\347\273\223\346\236\204.md" index fcd66f71417d2bef1ba304d611a173ea80e60850..5b777b42f32fc1b860775fc197d0a372a3a85964 100644 --- "a/Day01-15/03.\345\210\206\346\224\257\347\273\223\346\236\204.md" +++ "b/Day01-15/03.\345\210\206\346\224\257\347\273\223\346\236\204.md" @@ -18,9 +18,7 @@ Author: 骆昊 username = input('请输入用户名: ') password = input('请输入口令: ') -# 如果希望输入口令时 终端中没有回显 可以使用getpass模块的getpass函数 -# import getpass -# password = getpass.getpass('请输入口令: ') +# 用户名是admin且密码是123456则身份验证成功否则身份验证失败 if username == 'admin' and password == '123456': print('身份验证成功!') else: @@ -171,20 +169,18 @@ Version: 0.1 Author: 骆昊 """ -import math - a = float(input('a = ')) b = float(input('b = ')) c = float(input('c = ')) if a + b > c and a + c > b and b + c > a: print('周长: %f' % (a + b + c)) p = (a + b + c) / 2 - area = math.sqrt(p * (p - a) * (p - b) * (p - c)) + area = (p * (p - a) * (p - b) * (p - c)) ** 0.5 print('面积: %f' % (area)) else: print('不能构成三角形') ``` -> **说明:** 上面的代码中使用了`math`模块的`sqrt`函数来计算平方根。用边长计算三角形面积的公式叫做[海伦公式](https://zh.wikipedia.org/zh-hans/海伦公式)。 +> **说明:** 上面使用的通过边长计算三角形面积的公式叫做[海伦公式](https://zh.wikipedia.org/zh-hans/海伦公式)。 #### 练习5:个人所得税计算器。 diff --git "a/Day01-15/04.\345\276\252\347\216\257\347\273\223\346\236\204.md" "b/Day01-15/04.\345\276\252\347\216\257\347\273\223\346\236\204.md" index 0354abdb72af20043e4889861085a22e5197c3fb..1104abe2c05d946e6234abd048ee2edfe40e9a7b 100644 --- "a/Day01-15/04.\345\276\252\347\216\257\347\273\223\346\236\204.md" +++ "b/Day01-15/04.\345\276\252\347\216\257\347\273\223\346\236\204.md" @@ -2,7 +2,7 @@ ### 应用场景 -如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中其实不仅仅有需要重复的动作,还有我们上一个章节讲到的分支结构。再举一个简单的例子,比如在我们的程序中要实现每隔1秒中在屏幕上打印一个"hello, world"这样的字符串并持续一个小时,我们肯定不能够将`print('hello, world')`这句代码写上3600遍,如果真的需要这样做,那么编程的工作就太无聊了。因此,我们还需要了解一下循环结构,有了循环结构我们就可以轻松的控制某件事或者某些事重复、重复、再重复的去执行。 +如果在程序中我们需要重复的执行某条或某些指令,例如用程序控制机器人踢足球,如果机器人持球而且还没有进入射门范围,那么我们就要一直发出让机器人向球门方向奔跑的指令。当然你可能已经注意到了,刚才的描述中不仅仅有需要重复的动作,还需要用到上一章讲的分支结构。再举一个简单的例子,我们要实现一个每隔1秒中在屏幕上打印一次"hello, world"并持续打印一个小时的程序,我们肯定不能够直接把`print('hello, world')`这句代码写3600遍,如果真的要这样做,那么编程的工作就太无聊乏味了。因此,我们还需要了解一下循环结构,有了循环结构我们就可以轻松的控制某件事或者某些事重复、重复、再重复的去执行。 在Python中构造循环结构有两种做法,一种是`for-in`循环,一种是`while`循环。 @@ -24,11 +24,11 @@ for x in range(101): print(sum) ``` -需要说明的是上面代码中的`range`类型,`range`可以用来产生一个不变的数值序列,而且这个序列通常都是用在循环中的,例如: +需要说明的是上面代码中的`range(101)`可以用来构造一个从0到100的取值范围,这样就可以构造出一个整数的序列并用于循环中,例如: - `range(101)`可以产生一个0到100的整数序列。 - `range(1, 100)`可以产生一个1到99的整数序列。 -- `range(1, 100, 2)`可以产生一个1到99的奇数序列,其中的2是步长,即数值序列的增量。 +- `range(1, 100, 2)`可以产生一个1到99的奇数序列,其中2是步长,即数值序列的增量。 知道了这一点,我们可以用下面的代码来实现1~100之间的偶数求和。 @@ -96,7 +96,7 @@ if counter > 7: print('你的智商余额明显不足') ``` -> **说明:** 上面的代码中使用了`break`关键字来提前终止循环,需要注意的是`break`只能终止它所在的那个循环,这一点在使用嵌套的循环结构(下面会讲到)需要引起注意。除了`break`之外,还有另一个关键字是`continue`,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。 +上面的代码中使用了`break`关键字来提前终止循环,需要注意的是`break`只能终止它所在的那个循环,这一点在使用嵌套的循环结构(下面会讲到)需要引起注意。除了`break`之外,还有另一个关键字是`continue`,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。 和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构。下面的例子演示了如何通过嵌套的循环来输出一个九九乘法表。 @@ -154,7 +154,9 @@ Date: 2018-03-01 x = int(input('x = ')) y = int(input('y = ')) +# 如果x大于y就交换x和y的值 if x > y: + # 通过下面的操作将y的值赋给x, 将x的值赋给y x, y = y, x for factor in range(x, 0, -1): if x % factor == 0 and y % factor == 0: