zoukankan      html  css  js  c++  java
  • python入门

    第一章

    1.python简介

    2.python安装、配置

    3.HelloWorld仪式感爆棚

    4.python解释器

    5.字符编码和解码

    6.变量

    7.判断之if....else...

    8.Python循环之for、while循环

    python简介

         1989年,世界上的两件大事,python诞生了,我也来到这个世界上,Guido创造了python,.....2005年,Guido加入了Google,python在google内部得到了广泛的应用,这些年推出了N个版本,2009年,Alex接触到了python(或者更早),这个世界上就酝酿着一个大师级别的人物,Alex...,到2015年,最流行的工业版本是2.7,python为什么这么火?它为什么就这么火?

        1.python语言优雅、易读

        2.可移植性强

        3.可扩展性

        4.开发效率高

        5.可嵌入的高级语言

    它毕竟就是一盘大萝卜.....

       1.代码不能加密

       2.线程不能利用多cpu

       3.运行速度慢

    ♣python安装、配置

     python安装不细说,网上有不同的版本,安装较简单。

     python需要配置环境变量,把python的安装目录放到环境变量的Path变量里即可Path=...;D:Python27;-Soeasy

    ♣HelloWorld仪式感爆棚

    print("Hello World")
    

    ♣python解释器

    python解释器包括CPython、IPython、PYPY.....,它们是干什么的呢?我们在写python脚本时,保存的是以后缀.py结尾的文本文件,想要它运行,就必须依靠python解释器来解释,python是边解释边执行的语言,所以相对于其他编译型语言较慢,并非绝对....

    ♣字符编码

    电脑的起源,刚开始只是和电路一样只有断开和接通,即只能是简单的识别0和1,0和1,不同的交叉组合,可以代替大量的数字,仅仅能表达数字并非计算机的目的,为了支持字母,程序员设计出了一套用数字替代字母或符号的对照表,称之为ASCII码:

         最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号,1-127被字母占用,其他位可以代替中文,还有其他语言也占用。

         为了支持中文,于是程序员又发明了一个码表:GB2312,支持了大量的中文,但是还是不能表示一些信息,后来又有了GBK支持了图形符号,2000年,gb18030诞生了,支持了其他少数民族文字藏文、蒙文,维吾尔文字等

         各国之间都有自己的编码规则,这样不便于操作和管理,为了统一,美国制定了一套大多数国家语言支持的完整的统一的字符编码:Unicode,规定了每个字符有16位来表示,即2个字节,但是还是有一定的局限性。UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

    以下代码报错,(默认ASCII不支持中文)

    1 #!/user/bin/env python
    2 
    3 print("大家一起来happy!")

    看看这个:

    1 #! /user/bin/env python
    2 #_-_coding:UTF-8_-_   #设置了字符编码
    3 print("大家一起来happy!")

    ♣变量

    变量就相当于生活中的菜篮子,但是每个篮子中存放的是一种菜,计算机中,变量是存储数据的量,以便于数据的使用、操作,python中在使用变量时,不必先声明类型,可以直接存放数据,这就是动态语言,态类型语言是指在运行期间才去做数据类型检查的语言

    举例:

    python: name="Bernie"

    java: string name= "Bernie"

    python是强制类型语言,意思是,一旦被指定了一种数据类型,不经过强制转换,它永远就是这个数据类型了。下面引用定义:

    动态语言和静态语言
    通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

    (1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远 也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的 各种脚本语言如VBScript也多少属于动态类型语言。

    (2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

     

    强类型定义语言和弱类型定义语言

    (1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。强类型定义语言是类型安全的语言。

    (2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

    强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。另外,“这门语言是不是动态语言”与“这门语言是否类型安全”之间是完全没有联系的!
    例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。

     ♣if...else:判断,直接上代码

     1 # Author:chen
     2 #_-_coding:UTF-8_-_
     3 name="chen"
     4 age="19"
     5 job="IT"
     6 
     7 name=input("my name=")#python3X版本,在2X版本中用raw_input(),而2x版本中的input(),需要先定义变量,否自报错
     8 age=input("my age=")
     9 job=input("my job=")
    10 msg='''==============info of {iname}===================
    11 name={iname}
    12 age={iage}
    13 job={ijob}
    14 '''.format(iname=name,iage=age,ijob=job)#多行注释+格式化输出
    15 print(msg)
    16 
    17 msg2='''+++++++++++++++++info of %s++++++++++++++++++++
    18 name=%s
    19 age=%s
    20 job=%s
    21 ''' % (name,name,age,job)
    22 print(msg2)
    23 msg3='''****************info of {0}********************
    24 name={0}
    25 age={1}
    26 job ={2}
    27 '''.format(name,age,job)
    28 print(msg3)
    29 #多行注释可以是”“....”“”或‘’‘........’‘’
    30 #常用的格式化输出的三种方式~
    View Code

     ♣for、while循环经典案例

     1 # Author:chen
     2 #_-_coding:utf-8_-_
     3 myname="chenxuetao"
     4 myage="15"
     5 
     6 count=0
     7 while count<3 :      #注意True首字母要大写,不知道为什么?
     8     age = input("age=")
     9     if myage>age :
    10         print("你猜的年龄小了")
    11     elif myage<age :
    12         print("你猜的年纪大了")
    13     else :
    14         print("你猜对了")
    15         break
    16     count+=1
    View Code
     1 # Author:chen
     2 # #_-_codingutf-8_-_
     3 myname="chenxuetao"
     4 myage=15
     5 count=0
     6 while count<3 :      #注意True首字母要大写,不知道为什么?
     7     age = int(input("age="))
     8     if myage>age :
     9         print("你猜的年龄小了")
    10     elif myage<age :
    11         print("你猜的年纪大了")
    12     else :
    13         print("你猜对了")
    14         break
    15     count+=1
    16     if count == 3:
    17         guess=input("你还想继续猜测么?")
    18         if guess !="n" :
    19             count=0
    View Code
     1 # Author:chen
     2 # #_-_coding:utf-8_-_
     3 myname="chenxuetao"
     4 myage=15
     5 count=0
     6 for i in range (1,3):      #注意True首字母要大写,不知道为什么?
     7     age = int(input("age="))
     8     if myage>age :
     9         print("你猜的年龄小了")
    10     elif myage<age :
    11         print("你猜的年纪大了")
    12     else :
    13         print("你猜对了")
    14         break
    View Code

      --while循环时,循环条件要满足才进行循环,当不满足条件时,退出循环,执行下边的代码。

      格式是:while  True : #True首字母要大写

      --for循环,同样的在循环条件满足时执行循环体,for i in range(1,10) :

      --当循环条件不满足时,循环跳出

      --break,跳出当前执行的语句,可以结束循环,跳出循环,continue,当条件不满足,结束本次循环,执行下一次循环

    ♣简单的登录接口实现(优化中...)

    文件:

    zhao 111
    qian 111
    sun 111
    li 111
    zhou 222
    wu 222
    zheng 222
    wang 222
    acount.txt
    zhao
    zhou
    wu
    lock.txt
     1  1 #! /user/bin/evn python
     2  2 #_-_coding: utf-8_-_
     3  3 import  os,getpass,sys
     4  4 
     5  5 lock_add=0 #记录密码输入次数
     6  6 acount_lock=0 #
     7  7 
     8  8 lock_file='lock.txt'
     9  9 acount_file='acount.txt'
    10 10 while acount_lock<3 :
    11 11     username=input("用户名:").strip()                  #接收用户输入,去掉输入空格
    12 12     lock_add+=1
    13 13     lock_check=open(lock_file)
    14 14     for line in lock_check.readlines() :
    15 15         if username ==line.strip() :
    16 16             print("您的用户被锁定,请联系管理员")
    17 17             sys.exit()
    18 18     password=input("密码:").strip()
    19 19     flag=False
    20 20     acount=open(acount_file)
    21 21     for line in acount.readlines() :
    22 22         name,passwd=line.strip("
    ").split()
    23 23         if name==username and passwd==password :
    24 24             print("欢迎 %s 登陆成功" % name)
    25 25             flag=True
    26 26             sys.exit()
    27 27     acount_lock+=1
    28 28     if acount_lock==3 :
    29 29         print("您的用户被锁定,请联系管理员")
    30 30         rm=open(lock_file,'a')
    31 31         rm.write(username)
    32 32         rm.write("
    ")
    33 33         rm.close()
    View Code

     Version2.0

     1 #! /user/bin/env python
     2 #_-_coding:UTF-8_-_
     3 #Author:Bernie Chen
     4 import os,sys,getpass
     5 user_file='acount.txt'
     6 lock_file='lock.txt'
     7 try_time=0
     8 try_limite=3
     9 count=0
    10 flag=False
    11 while try_time<try_limite:
    12     Username=raw_input("账户:")                 # 用户输入登录账号
    13     Password=raw_input("密码:")                 # 用户输入登录密码
    14     Name=open(user_file)                          # 通过参数调用打开正常用户文件
    15     Lock=open(lock_file)                          # 通过参数调用打开锁定用户文件
    16     for lock in Lock.readlines():                # 循环锁定用户文件。readlines()是一次性读取所有行
    17         usename=lock.strip("
    ")                 # 去掉多余的换行,精确取出用户名
    18         if usename==Username :
    19             print("您的用户被锁定")
    20             try_time += 100                       #此处是随意加了个值,如果满足则跳出循环
    21             break
    22             sys.exit(0)
    23     if try_time<50:
    24         for name in Name.readlines() :                  #循环锁定用户文件。readlines()是一次性读取所有行,别用成readline()
    25             username,password=name.strip('
    ').split()  #将用户名和密码分别赋值,split()是分割,此处是以空格分割,去掉多余换行
    26             if username==Username and Password==password :
    27                 print("用户登陆成功")
    28                 try_time += 100
    29                 flag=True
    30                 break
    31                 sys.exit(0)
    32             elif username!=Username:
    33                 count+=1                                    #每当用户名取不到相同,count就增加
    34                 #print(count)
    35         if count == len(open(user_file,'rU').readlines()): #判断conut的值是否和文件的行数相同,如果相同,说明该用户未注册
    36             print("您的账户未注册,请注册后登录")
    37             sys.exit(1)
    38         if flag==False:
    39             print("用户名或密码错误,您还有%d次机会" % int(2-try_time))
    40             try_time+=1
    41 if try_time==3:
    42     print("用户已被锁定")
    43     locker=open(lock_file,"a")
    44     locker.write(Username)
    45     locker.write("
    ")
    46     locker.close()
    View Code
    A wise man thinks all that he says, a fool says all that he thinks.
  • 相关阅读:
    4.定时器
    LSTM分类层的理解
    对机器学习中end-to-end learning(端到端学习)的理解
    对非极大值限制(NMS)的理解
    ROI pooling
    softmax的理解
    长尾理论(long tail )的理解
    对双线性插值的理解
    RPN的理解
    卷积神经网络(CNN)和Faster-RCNN的理解
  • 原文地址:https://www.cnblogs.com/BernieChen/p/5702385.html
Copyright © 2011-2022 走看看