python 基础学习1

Python2Python3的区别:

  Python2 源码不标准,比较混乱,重复代码太多。

  Python3 统一标准,去除重复代码

  Python2 的默认编码方式是ASCII码  解决方式 在首行加上 #-*- encoding:utf-8 -*-

  Python3默认编码方式是utf-8

python是什么编程语言

  python是一门动态解释性的强类型定义语言。

  编程语言主要是以下几个角度进行分类:编译型和解释型,静态语言和动态语言,强类型定义语言和弱类型定义语言

  编译型语言:一次性 将所有程序 编译成二进制文件。

        编译器是把每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 

        缺点:开发效率低,不能跨平台

           编译之后如果需要修改就需要整个模块重新编译。

           编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

        优点:执行速度快

          编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译。

          所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。

  解释性语言:程序执行时,一行一行的解释

        解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的. 

        缺点:运行速度慢

           每次运行的时候都要解释一遍,性能上不如编译型语言。

        优先:开发效率高,可以跨平台

           有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。

           灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

        因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

python的优缺点

  优点:Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂。

     开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。

     高级语言————当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节

     可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工 作在不同平台上)。

     可扩展性————如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写

     可嵌入性————你可以把Python嵌入你的C/C++程序

  缺点:

     速度慢,Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些。

     代码不能加密,因为PYTHON是解释性语言,它的源码都是以名文形式存放的

     线程不能利用多CPU问题

变量:

  变量:就是将一些运算的中间结果暂存在内存中,以便后续代码调用。

       

# -*- coding: utf-8 -*-
 
name = "pp"

        命名规则:

        必须由字母,数字和下划线任意组合,且不能数字开头

        不能是python中的关键字

['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']

        变量具有可描述性

        不能是中文,不能用拼音

常量:

  常量:一直不变的量

  在Python中没有一个专门的语法代表常量,程序员约定俗成用变量名全部大写代表常量

    字母全部大写

注释:

  注释:单行注释#

  多行注释’’’被注释内容’’’

基础数据类型初始:

  数字:int 123...

      + - * / **

      %取余数

      在32位机器上 整数位数位32位,取值范围位-2**31~2**31-1

      ...在Python3里不再有long类型了,全都是int

      Type();

  字符串:str,凡是用引号引起来的都是字符串

 

>>> name = "Alex Li" #双引号
>>> age = "22"       #只要加引号就是字符串
>>> age2 = 22          #int
>>> 
>>> msg = '''My name is Alex, I am 22 years old!'''  #3个引号也可以
>>> 
>>> hometown = 'ShanDong'   #单引号也可以

 

      多引号什么作用呢?作用就是多行字符串必须用多引号

msg = '''
sssss,
sss
eee
aaa。
'''
print(msg)

      可相加 字符串的拼接,可相乘 str * int

>>> name
'Alex Li'
>>> age
'22'
>>> 
>>> name + age  #相加其实就是简单拼接
'Alex Li22'
>>> 
>>> name * 10 #相乘其实就是复制自己多少次,再拼接在一起
'Alex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex LiAlex Li'

      注意,字符串的拼接只能是双方都是字符串,不能跟数字或其它类型拼接

  布尔值:就两个值 ,一个True(真),一个False(假), 主要用记逻辑判断

>>> a=3
>>> b=5
>>> 
>>> a > b #不成立就是False,即假
False
>>> 
>>> a < b #成立就是True, 即真
True

用户交互 input

      1、等待输入

      2、输入的内容赋值给前面的变量

      3、Input出来的值全部为str

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
# 将用户输入的内容赋值给 name 变量
name = input("请输入用户名:")
  
# 打印输入的内容
print(name)

可以让用户输入多个信息,如下

#!/usr/bin/env python
# -*- coding: utf-8 -*-
name = input("What is your name?")
age = input("How old are you?")
hometown = input("Where is your hometown?")

print("Hello ",name , "your are ", age , "years old, you came from",hometown) 

  流程控制之If

    if 条件:

    结果

      字符串转化位数字Intstr),str必须是数字组成的

      数字转化位字符串 strint

    if...else

"""
if 条件:
    满足条件执行代码
else:
    if条件不满足就走这段
"""
AgeOfOldboy = 48

if AgeOfOldboy > 50 :
    print("Too old, time to retire..")
else:
    print("还能折腾几年!")

   多分支 if...elif..

if 条件:
    满足条件执行代码
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个
elif 条件:
    上面的条件不满足就走这个    
else:
    上面所有的条件不满足就走这段
age_of_oldboy = 48

guess = int(input(">>:"))

if guess > age_of_oldboy :
    print("猜的太大了,往小里试试...")

elif guess < age_of_oldboy :
    print("猜的太小了,往大里试试...")

else:
    print("恭喜你,猜对了...")

  代码是从上到下依次判断,只要满足一个,就不会再往下走。

缩进

    每个条件的下一行都缩进了4个空格.这是Python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件.

    缩进原则:

  • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
  • 同一级别的代码,缩进必须一致
  • 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。

流程控制之while:

  while 条件 :

     循环体

    无限循环

    中止循环:改变条件,时期不成立

          break;

          continue:结束本次循环,继续下一次循环。

  while else :

        当循环被break打断,就不会执行else中的结果

 

        与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

 

        while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

count = 0
while count <= 5 :
    count += 1
    if count == 3:break
    print("Loop",count)

else:
    print("循环正常执行完啦")
print("-----out of while loop ------")
Loop 1
Loop 2
-----out of while loop ------

 

格式化输出

  %占位符  %s 字符串  %d dight 数字

  %%只是单纯的显示%

name = input("Name:")
age = input("Age:")
job = input("Job:")
hobbie = input("Hobbie:")

info = '''
------------ info of %s ----------- #这里的每个%s就是一个占位符,本行的代表 后面拓号里的 name 
Name  : %s  #代表 name 
Age   : %s  #代表 age  
job   : %s  #代表 job 
Hobbie: %s  #代表 hobbie 
------------- end -----------------
''' %(name,name,age,job,hobbie)  # 这行的 % 号就是 把前面的字符串 与拓号 后面的 变量 关联起来 

print(info)

注意 : input接收的所有输入默认都是字符串格式!

    转化:int();str()

age = int(  input("Age:")  )
print(type(age))

初始编码

  电脑的传输,存储实际上是二进制编码的形式。

  美国:开始用ASCII码的形式,为解决全球化的文字问题,创建了一个万国码 Unicode

      最开始:用 1 个字节 表示所有的英文 特殊字符和数字

          2个字节,16位表示一个中文,不够。Unicode用4个字节表示一个中文。

          升级版 utf-8:一个字符最少用8位去表示,8位表示一个字母

              一个中文用3个字节去表示

          gbk :仅供国内使用,一个中文用2个字节去表示。

  最开始 8位bit == 1个字节(byte)

      1024byte == 1kb

      1024kb == 1M

      1024M == 1G

      1024G == 1T

posted @ 2018-06-11 11:09  liu-yong  阅读(109)  评论(0)    收藏  举报