Python 3.5 基本知识1

  首先python是一种面向对象、开源的、具有解析性的编程语言.接下来我们来看看python的基本一些语法.

  学习一门语言,第一个程序就是Hello World程序.在Python里面,Hello World的程序代码如下:

    print("Hello World")

  从这句代码我们可以看出来,python是非常优雅简洁的,不像Java语言、C语言等其他语言那么繁琐.接下来我们来对比一下它们的Hello World程序.

  Java:

    class HelloWorld{

      public static void main(String[] args){

          System.out.println("Hello World");

        }

      }

  C语言:

    #include<stdio.h>

    main(){

      printf("Hello World\n");

    }

  C++:

    #include <iostream>

    using namespace std;

    int main() {

       cout << "Hello, World!";

     }

  这些语言相互对比,我们可以发现python在代码的书写上是完胜于其它语言的,不过在编译的效率上却慢于其它语言.

  在python里面,标识符是由字母、数字、下划线组成,但是不能以数字开头,标识符的字母也是区分大小写的.如"Helloword"与"HellWord"是两个完全不同的标识符.切记python标识符里面没有"$",学过Java的可能会在这儿有所弄混.因为在python里面的"$"只能被当做是一个特殊字符.

  接下里说说字符编码的演变过程:最开始的时候是ASCII编码,里面可以存255个字符,每个字符只占用了1bytes.但是编码是由外国人编的,外国人考虑到其它国家也会用到,但由于没有想到外文很多,字节不够用,于是就只留下来了128个字符的占位,所以最开始的ASCII编码就只有127个.但是光一个中国的汉字就是上万,128个占位根本不够用,所以又是怎么样解决这个问题的呢?于是后来人们想出来了扩展列表.就是在占位的地方再扩展出来一张列表来进行占位.所以正因为这样便出现了中文的字符编码,也就是1980年的GB3212,里面收录了中文汉字七千多个.随着发展,后来1995年又出现了GBK1.0,里面收录了汉字两万多个.到了2000年,发展到了GB18030,里面收录了汉字两万七千余个.但是每个国家有每个国家的编码,且这些编码并不统一,于是在安装运行的时候经常出现乱码的情况.为了解决这个问题,联合国于是制作出来了一套统一的标准UTF-8.在UTF-8中,英文只占一个字节,汉字占三个字节.

  接下来我们说说输出语句,输出语句的语法是:

    print("HelloWorld")

  有以下程序:

    name = "Bailinghu"

    name2 = name 

    print("My name is ",name2)

  在这个程序里面,我们对name进行赋值,然后把name的值再赋值给name2,所以运行之后的结果是:

    My name is Bailinghu

  在python里面,我们如果不想执行一个语句或者一段程序,我们可以将该语句或者该程序注释掉.python里面单行注释的语法是在语句前加"#",多行注释就是加"""语句"""或者'''语句'''.当然,多行注释的话还作为多行打印.

  有以下程序:

    name = "Bailinghu"

    '''

    name2 = "ZHANGSAN"

    name = name2

    '''

    name3 = "WANGMAZI"

    #print(name3)

    print(name)

  在这段代码里面,单引号里面的语句和#号后面的语句是不执行的.所以程序运行的结果是:

    Bailinghu

  在这段代码里面,如果我们想把引号内的内容打印出来,那我们只需要把它赋值给一个变量就行了.代码如下:

    msg='''

    name2 = "ZHANGSAN"

    name = name2

    '''

    print(msg)

   程序执行结果如下:

    name2 = "ZHANGSAN"

    name = name2

  若我们要实现以下功能:用户可以输入自己的用户名和密码,则代码执行如下:

    username = input("username:")

    password = input("password:")

  这里的input("")就是输入语法.然后运行的结果就是:

    username:

    password:

  用户只需要输入用户名和密码就可以了.但是在各类软件和注册的网站上,我们输入密码是看不见的,所以我们要用密文表示.在python中有专门的可供调用的程序.即上述代码可以改成下面代码:

    import getpass

    username = input("username:")

    password = getpass.getpass("password:")

  这样用户在输入密码的时候就不能看见自己输入的密码了.

  若在文件内存在着一个用户名和密码,这时候我们需要判断用户输入的用户名和密码是否正确.如果正确就显示"Welcome user 名字 login...",如果不正确就显示"Invalid username or password!".代码如下:

    import getpass

    _username = 'Bailinghu'

    _password = 'abc123'

    username = input("username:")

    password = getpass.getpass("password:")

    if _username == username and _password == password :

      print("Welcome user {name} login...".format(name = username))  #format:格式,就是给大括号内name的赋值username的值.

    else :

      print("Invalid username or password")

  这里使用了条件语句if-else,在这里要注意的是,在python中,所有的一级代码都要顶格书写,子代码会自动缩进.如果不这样写,那么代码执行的时候就会报"缩进错误"的错误.

  接下来我们来做一个猜年龄游戏,设置翠花的年龄为56岁,当猜错的时候显示"think wrong.",猜对了就是"yes,you got it.".代码如下:

    age_of_cuihua = 56

    guess_age = input("guess age:") 

    if guess_age == age_of_cuihua :

      print("yes,you got it.")

    else :

      print("think wrong") 

  在上面代码里面执行的时候,只能猜一次,且有时候运行时候报错"数据类型不同无法比较".为了实现持续可执行性.我们便要使用循环语句.如下:

    age_of_cuihua = 56

    while True :

      guess_age = int(input("guess age:"))  #把输入的语言强制转化成int型

      if guess_age == age_of_cuihua :

        print("yes,you got it.")

      else :

        print("think wrong") 

  这个程序就是不管猜对或者猜错都会一直运行下去.若我们要该程序只能猜三次,在猜对了就停止,猜大了就显示"think smaller",猜小了就显示"think smaller",且实现猜完之后连续错误显示"you have tried too many many times...fuck off".则代码如下:

    age_of_cuihua = 56

    count = 0

    while count < 3 :

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

      if guess_age == age_of_cuihua :

        print("yes,you got it.")

        break  #跳出循环

      elif guess_age > age_of_cuihua :  # elif在其它语言里面就是 else if

        print("think smaller...")

      else :

        print("think bigger!")

      count += 1 # count += 1相当于count = count + 1

    else:

      print("you have tried too many times...fuck off")

  若我们再要求猜错三次之后程序可再询问用户是否继续,则代码如下:

    age_of cuihua = 56

    count = 0

    while count < 3 :

      guess_age = int(intput("guess age:"))

      if guess_age == age_of_cuihua :

        print("yes,you got it.")

        break

      elif guess_age > age_of_cuihua :

        print("think smaller...")

      else :

        print("think bigger!")

      count += 1

      if count == 3

        countine_confirm = input("do you want to keep guessing..?")

        if countine_confirm != 'n' :

          count = 0

  接下来我们来谈谈for语句的语法:

    for i in range(0,10,1) :  #从0开始,循环10次,1表示补偿为1,即一个一个循环.如果是2的话则是隔一个隔一个循环.i为自定义标识符,

      print("loop ",i)

  则程序运行结果如下:

    loop 0

    loop 1

    loop 2

    loop 3

    loop 4

    loop 5

    loop 6

    loop 7

    loop 8

    loop 9

  再如有下程序:

    for i in range(0,10) :

      if i < 3 :

        print("loop ",i)

      else :

        continue  #跳出本次循环

      print("hehe...")

  则程序运行结果为:

    loop 0

    hehe...

    loop 1

    hehe...

    loop 2

    hehe...

  接下里我们来一个表格,可以让用户输入名字、年龄、工作、工资,然后自动形成一个表格.先看第一种形式:

    name = input("name:")

    age = int(input("age:"))

    job = input("job:")

    salary = input("salary:")

    info1 = '''

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

    Name:%s

    Age:%d

    Job:%s

    Salary:%s

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

    print(info1)

  第二种形式:

    name = input("name:")

    age = int(input("age:"))

    job = input("job:")

    salary = input("salary:")

    info2 = '''

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

    Name:{_name}

    Age:{_age}

    Job:{_job}

    Salary:{_salary}

    '''.format(_name = name,

        _age = age

        _job = job

        _salary = salary)

    print(info2)

  第三种形式:

    name = input("name:")

    age = int(input("age:"))

    job = input("job:")

    salary = input("salary:")

    info3 = '''

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

    Name:{1}

    Age:{2}

    Job:{3}

    Salary:{4}

    '''.format(name,name,age,job,salary)

    print(info3)

  在这三种形式里面,我们最常用的是第二种,因为第二种更加形象直观的看出来代码在那里表示的是什么意思.当然第三种也比较常用.但是有些时候我们只能使用第二种.假如我们输入"翠花,56,老师,1000",三种形式最终的执行结果都是:

    ------info of 翠花 ------

    Name:翠花

    Age:56

    Job:老师

    salary:1000

  以上就是本次的基础知识.

上一篇:测试开发-Day1


下一篇:python实践项目四:猜数字游戏