写在要点之前的一段话,留给将来的自己:第一次参加编程的培训班,很兴奋很激动,之前都是自己在网上找免费的视频来看,然后跟着写一些课程中的代码,都是照着模子写,没有自己过多的思考。感觉这样学不好,除了多写以外,还得自己思考,经过了自己思考的源码,才能真正成为自己的东西。在上课前,班主任就让我们自己想一下,通过这个培训,要达到的目标。其实我的目标很简单,不求通过这个培训班能成为什么开发工程师,年薪百万,达到人生巅峰,赢取白富美。那个不现实,我只求能够在现在实际工作中(我的工作主要是网络运维,还兼有系统管理,如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. 自己做的网页页面导航浏览JS/JQuery_版本2(优化边缘)

    版本2增加了宽宽的边界,边界内鼠标也可以导航.边界对应这HTML页面的边界.目前右下角有时会导致功能失效.版本1. 这次找了个更好的例子,实践中产生这个需求的真实例子,点我Demo. 需求: 版本1: ...

  2. android网络图片的下载

    android网络图片的下载 /** * Get image from newwork * * @param path * The path of image * @return byte[] * @ ...

  3. SRM 506(2-1000pt)

    DIV2 1000pt 题意:一个由n*m的网格组成的棋盘,有四种点,'.'表示空点,'#'表示是墙不能走,'$'表示起点(同样是空点),'1'~'9'表示该点有复活时间为t的怪兽.每次,可以从一个点 ...

  4. Linux 下让进程在后台可靠运行的几种方法

    想让进程在断开连接后依然保持运行?如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作? 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一 ...

  5. [IE9] GPU硬件加速

      IE9 的一个重大改进就是使用了GPU硬件加速来渲染网页. 那么GPU硬件加速到底能够带来多大的性能提升? 你可以在IE的测试案例网站(http://ie.microsoft.com/testdr ...

  6. mybatis处理单表多表操作以及动态sql和批量操作

    一.单表操作 建立了相应的mapper映射接口类后,在src/main/resources目录下的自己建立的mapper文件夹下创建映射类 select操作:用select标签 属性id为映射接口的方 ...

  7. Windows环境下python多版本配置方案

    系统环境 Windows,安装了msys2,windows和msys2都安装了python,且版本比较多,使用shell/bash聚合工具conemu64 配置方案 配置msys2环境用户目录下的.b ...

  8. C# 对JS编码/解码进行转换

    public static class Extension { #region [编码/解码统一转换] /// <summary> /// /// </summary> /// ...

  9. 如何由XSD自动生成XML和实体类

    项目中有时候要用XML作为数据源,因此需要定义XML文件和相应的类,最佳方法是首先定义XSD,然后自动生成实体类,最后生成XML和填充数据:读取XML数据源的时候,首先用XSD验证XML数据格式,然后 ...

  10. Android中强大的Matrix操作

    简介: Matrix翻译字面意思时矩阵,在Android的API中提供了两种Matrix,分别是android.graphics.Matrix 和 android.opengl.Matrix . 后者 ...