写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考。感觉这样学不好,除了多写以外,还得自己思考,经过了自己思考的源码,才能真正成为自己的东西。在上课前,班主任就让我们自己想一下,通过这个培训,要达到的目标。其实我的目标很简单,不求通过这个培训班能成为什么开发工程师,年薪百万,达到人生巅峰,赢取白富美。那个不现实,我只求能够在现在实际工作中(我的工作主要是网络运维,还兼有系统管理,如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当前路径,由于查找模块时是按照列表(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语句结构,进行异常处理。可由于我的流程处理把握得不好,所以自己试着写了一下,总是存在没有考虑到的流程。最终索性都删除了。这里充分证明了在写一个项目,一个程序前,先做流程图的必要性。今后写程序一定加入流程图,将程序的控制流分析清楚,再动手敲代码。

python学习第一课要点记录的更多相关文章

  1. python学习第二课要点记录

    字典使用时,使用for k,v in items():要将字典转换为元组,因此效率较低,如果数据量较大,就不建议使用这样的形式获取key和value的值,而要使用 for item in dict: ...

  2. python学习第一课

    第一课: 1.不要使用来路不明的软件 2.下载杀毒软件 3.不懂技术的人在技术人面前会显得愈发无知 4.python无所不能 需要掌握的知识: 1.python基本语法 2.文件处理 3.函数 4.模 ...

  3. python 学习 第一课

    # -*- coding: utf-8 -*- import urllib2 import cookielib url="http://www.baidu.com" print ' ...

  4. Python学习第一课——if-else

    #if 基本语句 if 1==1: print("如果条件为真,if执行该语句") else: print("如果条件为假,if则执行这条语句") #if 多重 ...

  5. python学习第三次记录

    python学习第三次记录 python中常用的数据类型: 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). int.数 ...

  6. Python作业第一课

    零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义, ...

  7. Magento学习第一课——目录结构介绍

    Magento学习第一课--目录结构介绍 一.Magento为何强大 Magento是在Zend框架基础上建立起来的,这点保证了代码的安全性及稳定性.选择Zend的原因有很多,但是最基本的是因为zen ...

  8. python学习第一讲,python简介

    目录 python学习第一讲,python简介 一丶python简介 1.解释型语言与编译型语言 2.python的特点 3.python的优缺点 二丶第一个python程序 1.python源程序概 ...

  9. Python学习-第一天-函数和模块的使用

    目录 Python学习-第一天总结 print输出的一种简单格式 函数参数之可变参数 模块管理函数 if else语句的单行实现(简洁) 变量作用域 函数书写格式 Python学习-第一天总结 pri ...

随机推荐

  1. 老罗android开发视频教程学习完了

    让我学到了android的文件结构,事件窗口数据传递,百度地图开发很感谢

  2. Elasticsarch及插件安装

    Elasticsarch及插件安装 一.环境介绍与安装准备 1.环境说明 OS为Centos 6.5,elasticsearch-1.1.X.tar.gz,         注:mongo river ...

  3. ACM编程网站

    ACM:ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate ProgrammingContest(ACM-ICPC或ICPC)是由美国计算机协会(ACM) ...

  4. 301重定向与CNAME

    CNAME记录是域名指向另一个域名A记录是域名指向IP地址URL跳转是打开这个网址的时候会跳转到另一个指定的网址,URL跳转分为301永久重定向和302临时重定向. 301永久重定向会使搜索引擎抓取新 ...

  5. kubernetes kubeadm部署高可用集群

    k8s kubeadm部署高可用集群 kubeadm是官方推出的部署工具,旨在降低kubernetes使用门槛与提高集群部署的便捷性. 同时越来越多的官方文档,围绕kubernetes容器化部署为环境 ...

  6. Maven常用插件--转

    =========Maven Report Plugin========= 1.源码分析 <artifactId>maven-pmd-plugin</artifactId> 2 ...

  7. YYCache 源码分析(二)

    本文分析YYMemoryCache实现原理: YYMemoryCache是内存缓存,所以存取速度非常快,主要用到两种数据结构的LRU淘汰算法 1.LRU Cache的容量是有限的,当Cache的空间都 ...

  8. Strust2 <c:forEach> 循环控制标签

    <c:forEach>为循环控制标签 语法:迭代一集合对象中的所有成员 <c:forEach [var="varName"] items="collec ...

  9. (转)Vim用法小结

    这是我转的一些vim基本用法,可能对初用者会有帮助,独乐乐不如众乐乐,是吧! Vim一般的Unix和Linux下均有安装.  三种状态 Command: 任何输入都会作为编辑命令,而不会出现在屏幕上 ...

  10. css sprint 生成工具 bg2css

    今天需要改个css sprint,之前使用过一个工具蛮好使,但是就是想不起叫什么名字,网上搜了很久,才再次找到,原来是bg2css,今天记录下,以备以后不时之需. 下载地址:http://www.cs ...