python学习第一课要点记录

时间:2024-11-19 19:07:20

写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考。感觉这样学不好,除了多写以外,还得自己思考,经过了自己思考的源码,才能真正成为自己的东西。在上课前,班主任就让我们自己想一下,通过这个培训,要达到的目标。其实我的目标很简单,不求通过这个培训班能成为什么开发工程师,年薪百万,达到人生巅峰,赢取白富美。那个不现实,我只求能够在现在实际工作中(我的工作主要是网络运维,还兼有系统管理,如linux、windows)能够写一些小程序,让工作变得简单,每月领导要的数据能够通过程序自动提取并生成报表,稍微大一点的目标就是自己开发一个网络监控系统,因为目前我们单位还没有这个系统,也很急迫需要这套系统。再远点的目标,等近期的这个目标实现了再说吧。我喜欢一步一个脚印,踏踏实实的进步。还因为一个近期目标一个近期目标的去努力,更轻松,一下定一个很高的目标,太远了,奋斗起来太累,我感觉我没有那个耐心。好了,废话不多说,切入正题。

第一课主要介绍了以下部分:Python介绍、发展史、Python2和3、如何安装python、Hello World程序、变量、字符编码、用户输入、格式化输出、流程控制(if...else、循环)、模块讲解(主要讲了有getpass,os,sys以及自定义模块:tab(仅适用于MAC和LINUX系统,因为windows中无法安装readline模块)),并且介绍了自定义模块放置的位置,应该放置在系统环境变量定义的路径下。查看环境变量的方法:

 import os            #引入os模块,打印环境变量的前提
print(os.sys.path) #输出环境变量

输出结果如图:python学习第一课要点记录

输出的是一个列表,第一个空字符串' ',表示python当前路径,由于查找模块时是按照列表(list)元素的先后顺序,一旦查到当前路径存在同名的模块就退出查找,所以当前目录的模块优先级高于系统环境变量中的其他路径模块。

个人感觉tab模块比较有用,为避免今后不好查找,现在先copy一份备份:

Module tab:

 1 #!/usr/bin/env python
2 # python startup file
3 import sys
4 import readline
5 import rlcompleter
6 import atexit
7 import os
8 # tab completion
9 readline.parse_and_bind('tab: complete')
10 # history file
11 histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
12 try:
13 readline.read_history_file(histfile)
14 except IOError:
15 pass
16 atexit.register(readline.write_history_file, histfile)
17 del os, histfile, readline, rlcompleter

For Linux

1 import sys
2 import readline
3 import rlcompleter
4
5 if sys.platform == 'darwin' and sys.version_info[0] == 2:
6 readline.parse_and_bind("bind ^I rl_complete")
7 else:
8 readline.parse_and_bind("tab: complete") # linux and python3 on mac

For Mac

课程讲到循环部分,有一点值得记录一下,就是for i in range(10),这个语句的实际操作是将range(10)获取到的值,赋值给i,而不是i每次自增以后再去与range(10)中对比什么的。这点很重要。

    后面的猜数字游戏,我自己也跟着写了一下,将代码贴出来做个标注:自己加入了随机数模块,增加游戏难度。
 #!usr/bin/env python
#!-*-coding:utf-8 -*-
#Created on 2016年6月17日 上午8:23:03
#Author: Administrator
import random age = random.randint(0,101)
counter = 0
for i in range(10):
if counter < 3:
guess_num = int(input('请输入你所猜的数字:'))
if guess_num == age:
print('恭喜你答对了!')
break
elif guess_num > age:
print('往小了去想.')
else:
print('往大了去想.')
else:
continue_confirm = input('想再试试吗?请输入"Y"或者"N".')
if continue_confirm == 'Y' or continue_confirm == 'y':
counter = 0
continue #这是一个要点,加continue,为了跳出本次循环,否则计数器自增1,则猜了3次再玩则只能判断2次。
else:
print('再见.O(∩_∩)O~')
break
counter +=1

guess_game


其实这个程序还有很多可以修改的地方,例如加入异常处理,因为不是所有人都会按照游戏规则,输入整数,如果输入了小数,或者英文字母,则程序会报错。可以采用在判断大小前加入try...except语句结构,进行异常处理。可由于我的流程处理把握得不好,所以自己试着写了一下,总是存在没有考虑到的流程。最终索性都删除了。这里充分证明了在写一个项目,一个程序前,先做流程图的必要性。今后写程序一定加入流程图,将程序的控制流分析清楚,再动手敲代码。