前言:35岁了,工作10年了,一直很排斥学软件编程,但是IT这条路一路走来发现如果不改变这辈子就这样了!

     学Python是意外,也是缘分。前年的时候就看到有同事学这,那时他刚参加工作不久。今年他从我们公司走了,

     学习资料的来源。免费课程很坑,直播的时间我老是有事,录播的视频老是不给更新。所以我就从网上买了一份Python的学习视频,这就开启了我想学Python之路。

     视频情况。一开始网上买的视频资料很多,没有头绪。然后听了一两节感觉没有方向,没有适合自己的。直到我找到其中一个视频,老师很牛,我觉得讲得挺好,

可惜我这地方没有这样的培训。

     从现在开始,写文章记录学习情况,以及自己的一周学习的感受。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第一周学习情况如下:

一、对Python的介绍

二、Python安装和使用

三、初试身手

四、变量和字符

五、用户交互登陆

六、流程判断 if else

七、循环语句

      第一章:对Python的了解

      a老师讲得很细,包括了排名、创始人、语言的由来、经历的版本、Python是解释型,动态型巴拉巴拉,讲得真好……但是对我这编程小白来说,

就只能当听说书先生说的开场白,也许a老师有铺垫或者其中穿插了什么重要信息我并没有听出来。所以我决定在我学到第25周的后,

再回头来看a老师第一章对Python的介绍,也许与我现在的感触完全不一样。

      第一章最重要的两个信息是:1.学好Python需要大半年,老师的班去年讲到今年都没有讲完的。可是我等不了,我需要加快速度。

                                                  2.学完Python我接着学go。

 

      第二章:Python安装和使用环境

      之前听的课程和a老师讲的课程都是在windows环境下,但是安装的Python版本有所不同,腾讯的免费视频说现在2.7版本在实际使用环境中比较多,

但a老师使用的是3.5版本的,a老师说得一席话我觉得还是很有道理的,我总结如下:为什么要使用3.5,因为客户的升级是应该由我们做运维的带动,

如果我们都不去帮助客户升级,我们的未来就会被动挨打。

      其次使用的解释器也不一样,在《笨办法》中使用的是Notepad,a老师让我们使用Pycharm。嗯我这小白看不出来好坏,还是跟着老师来吧。

      安装调试都没问题,注意安装windows标准的安装包,有支持CPU是AMD版本的就安装不了。

 

      第三章:初试身手

使用 print("Hello World!")几种方式进行打印测试。

     1.测试print (Hello World!) 错误输出如下:
     提示 line1有问题
     SyntaxError: invalid character in identifier #字符无效

     2.测试 print ('Hello World!')
     正常!

    3.测试 print('Hello World!'),去掉print后的空格。
    正常!


  第四章:变量和字符

 变量定义的规则:

    • 变量名只能是 字母、数字或下划线的任意组合
    • 变量名的第一个字符不能是数字
    • 以下关键字不能声明为变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']这么多一下把人干蒙了,其实不用死记,以后使用习惯就好。

       变量赋值测试:

      name = "sugod"

      print (name)

      测试以下几种形式:

      1.name = sugod

         print(name)

        报错:NameError: name 'sugod' is not defined

 

      2.name = 'sugod'

         print("name")

         打印出结果为:name #单引号或双引号表示打印字符,不加符号表示被赋值的变量

 

       3. name = 'sugod'

          name2 = name

          print (name,name2)

         结果:sugod sugod

 

      4.name = 'sugod'

         name2 = name

         name = 'susu'

         print (name,name2)

        结果:susu sugod  #程序的运行是严格按照语句顺序运行,虽然已经将name赋值给了name2,name再此之后又进行一次赋值,

但是name2并没有

字符:
       python解释器在加载.py文件中代码时会对内容进行编码,如果中间出现中文在2.7版本中会出现报错,例如:
        print ("你好,世界")

        需要在文件之前添加 :  #_*_coding:utf-8_*_#

 不过这一个问题在3.5中不需要,同时通过解释器的设置也能解决。

 

注解问题:# 一行注解,"""……"""/'''……'''多行注解

变量名问题:多个变量名组合使用“_”分隔开,尽量使用英文。可惜我英语很差,要学习的地方很多啊!————2017/6/11 23:27

将注释的多行打印出来:

         su = '''

         name = 'sugod'

         name2 = name

         name = 'susu'

         print (name,name2)

     '''

         print (su)

        输出结果:

         name = 'sugod'

         name2 = name

         name = 'susu'

         print (name,name2)

 

第五章:用户交互登陆

  1.测试简单账户登陆 

      username = input("username:")

       password = input("password:")

       print (username,password)

       输出结果:

       username:输入内容

       password:输入内容(明文)

       su 123456 #打印输入内容结果

 

----密文加密,调用标准库,getpass----

      import getpass #调用库

      username = input("username:")

       password = getpass.getpass("password:")

       print (username,password)

 

  2.测试录入信息动作

       指定输入内容后按要求排列输出:

       name = input ("name:")

       age = input ("age:")

       job = input ("job:")

       salary = input("salary:")

info = '''

       --------- info of %s---------

       name :%s

       age:%s

       job:%s

       salary:%s

        '''%(name,name,age,job,salary)

print (info)

 输出结果:输入部分省略

---------info of su----------

name:su

age:33

job:it

salary:8888

注意以上%s为格式化符,输出一个字符,还有%d整数输出。将age:%s-->age:%d ,同时要将之前的赋值也进行更改age = input ("age:")-->age = int(input("age:"))

%f浮点数,可以输出小数点

注意检查函数的类型使用:print (type("age:"))

注意在python2的版本中name = raw_input("name:")

      在Python3的版本中name = input("name:")

info另外两种的用法:

info2 = '''

      --------------info of {_name}-----------

      Name:{_name}

      Age:{_age}

      Job:{_job}

       Salary:{_salary}

'''.format(_name=name,_age=age,_job=job,_salary=salary)

print(info2)

 

info3 = '''

----------info of {0}---------

Name:{0}

Age:{1}

Job:{2}

Salary:{3}

'''.format(_name=name,_age=age,_job=job,_salary=salary)

print(info3)

 

第六章:流程判断 if else

简单的流程判断 

1.列举了通过核对用户登陆名以及密码的正确性:

       _username = "sugod"

       _password = "abc123"

       username = input("username:")

       password = input("password:")

if _username == username and _password == password:

     print("Welcome user {name} login ...".format(name=username))

else:

     print("Invalid username or password!")

注意在输入if的时候最后会有“:”,同时下一行会缩进,不能顶格写,会报错IndentationError

      else的情况也同上。-----2017-06-12 23:14:07

2.判断年龄大小

     sugod = 35

     guess_age = int(input('guess age:'))

if guess_age == sugod :

    print("yes, you got it.")

elif guess_age > sugod :

    print("think smaller ...")

else :

    print ("think bigger...")

注意guess_age赋值的时候要与sugod相同,所以需要给出整数型定义int()

 

第七章:while 语句 循环

 1.简单的循环语句如下:

count = 0 #计数器

while True:

    print("count:",count)

    count = count +1 #也可以写成count +=1

    if count == 1000:

         break #跳出循环

 

2.用户登陆判断:

     sugod = 35

while Ture:

    guess_age = int(input('guess age:'))

    if guess_age == sugod :

            print("yes, you got it.")

            break

    elif guess_age > sugod :

            print("think smaller ...")

    else :

            print ("think bigger...")

注意格式,while在最外一层,赋值和if/elif/else第二层,判断后输出第三层。一旦出问题就会报:IndentationError: expected an indented block

 

3.以上循环在输入有错的情况下会无限循环下去,现在测试限制输入次数,3次

sugod = 35

count = 0

while Ture:

    if count == 3:

            break

            print("login out ...")

    guess_age = int(input('guess age:'))

    if guess_age == sugod :

            print("yes, you got it.")

            break

    elif guess_age > sugod :

            print("think smaller ...")

    else :

            print ("think bigger...")

    count +=1

 

4.以上优化后结果如下:

sugod = 35

count = 0

while count < 3:

    guess_age = int(input('guess age:'))

    if guess_age == sugod :

            print("yes, you got it.")

            break

    elif guess_age > sugod :

            print("think smaller ...")

    else :

            print ("think bigger...")

    count +=1

if count == 3: #优化-->else :

    print("login out ...")

 

for 循环语句

1.简单的for循环语句如下:

for i in range(10):

      print("loop",i)

2.将while循环改编成for循环,省去count,如下:

sugod = 35

for i in range(3):

    guess_age = int(input('guess age:'))

    if guess_age == sugod :

            print("yes, you got it.")

            break

    elif guess_age > sugod :

            print("think smaller ...")

    else :

            print ("think bigger...")

else :

     print("login out ...")

 

 3.简单循环语句输出间隔结果

for i in range(0,10,2): #从0开始到10,隔一个数打印一次,所以()内最后一个2是指步长

      print("loop",i)

 输出结果:

      loop 0

      loop 2

      loop 4

      loop 6

      loop 8

 

4.复杂判断循环

sugod = 35

count = 0

while count < 3:

    guess_age = int(input('guess age:'))

    if guess_age == sugod :

            print("yes, you got it.")

            break

    elif guess_age > sugod :

            print("think smaller ...")

    else :

            print ("think bigger...")

    count +=1

    if count == 3:

           countine_confirm = input("do you want to go on?")

    if countine_confirm != 'n':

           count = 0

else :

    print("login out ...")

注意格式,if语句最后有冒号不能遗漏

5.continue函数用法,跳出本次循环,继续到下次循环

for i in range(0,10):

      if i <3:

             print("loop",i)

      else:

             continue

      print("ok")

加断点,Debug测试

6.复杂循环语句:

6.1 循环套循环,执行10*10次

for i in range(10):

    print('------',i)

    for j in range(10):

        print(j)

 

6.1 循环套循环,break 跳出本次小循环,执行10*6次

for i in range(10):

    print('------',i)

    for j in range(10):

        pirnt(j)

        if j > 5:

             break

---------------------------------------------------2017-06-13  20:50:59