欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python 3.5 基本知识1

程序员文章站 2022-10-08 20:26:58
首先python是一种面向对象、开源的、具有解析性的编程语言.接下来我们来看看python的基本一些语法. 学习一门语言,第一个程序就是Hello World程序.在Python里面,Hello World的程序代码如下: print("Hello World") 从这句代码我们可以看出来,pyth ......

  首先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

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