python学习-01

python 简单基础

os环境:redhat 7.2
解释器:ipython (redhat7有自带的python,但是ipython能用tab键补齐命令)
版本: python-2.7

#1. 输入输出

 输出:
  print

   print a  ##输出的是a所代表的值
    -------------------------
  In [1]: a = "hello"

  In [2]: print a
  hello

  In [3]: a = 1

  In [4]: print a
    1

  In [5]: print "a"
  a
    --------------------------

   print 100+200    ##输出的是100+200的值
    -----------------------------------
  In [6]: print "100 + 200"
     100 + 200

  In [7]: print "100 + 200 =",100+200
    100 + 200 = 300
    -----------------------------------



 输入:
  raw_input  input

   a = raw_input()
       -----------------------
     In [3]: a = raw_input()
           1

     In [4]: a
     Out[4]: '1'
       -----------------------

   a = raw_input("请输入一个数字:")
       -----------------------
       In [6]: a = raw_input("please input a number: ")
       please input a number: 1

       In [7]: a
       Out[7]: '1'
       ------------------------

   a = input("waht is your name?")
       --------------------------
     In [4]: a = input("waht is your name?")
     waht is your name?"yang"
       ---------------------------

  input 与  raw_input 的区别:
     input 会假设用户输入的是合法的python表达式,
     raw_input 会把所有的输入当作原始数据(raw data),然后将其放入字符串中,意味着用 raw_input
        读取的输入都是在哦福传类型的,要想对输入的数据进行操作,就要用到类型的强制转换
      int(a)    ##将a强转换为int类型



#2. 数据类型
 
   python 会自动识别你输入的类型
   type(a)  ##查看a的类型
 
   a = 1.0    type(a)显示float
   a = 1      type(a)显示int
   a = "python"  type(a)显示str
   a = 1L     type(a)显示long

   c语言中浮点类型分为单精度(float)与双精度(double)
   python没有double类型,但是float精度是双精度的
   

   强制类型转换:
     int(a)     ##a转换为int
     str(a)     ##a转换为字符串
     float(a)   ##a转换为浮点数

   python为了便于书写,引入科学计数(类型:float):
      1.2e-3  ==  0.0012
      1.2e4   ==  12000
    
#3. 运算符

 算术运算符:
  +
  -
  *      #乘
  /      #除
  **    #幂
 
 赋值运算符:
  =     #后面的值复制给前面
  +=    #先 + 再 =   a+=1 <==> a=a+1
  -=    #先 - 再 =   a-=1 <==> a=a-1

 关系运算符:
  >
  <
  >=
  <=
  !=
  ==

 逻辑运算符:
  not  #逻辑非
  and  #逻辑与
  or   #逻辑或

###序列#####

python中有六种内建的序列:  列表 元组 字符串 Unicode字符串 buffer对象  xrange对象

序列的通用操作: 索引 分片 加  乘  以及成员资格(in or not in)   还有计算序列的长度,找出最大元素和最小元素

索引:
   序列中所有的元素都是有编号的-------从左往右是从0开始递增 ,编号就是索引号
   还有负数索引,最后一位(最右一位)的索引为 -1
   
    格式:    序列[索引号]     返回的是的当前索引号对应的序列元素

   可以通过变量名去引用一个序列,通过索引值来查看元素,也能直接用字面值去使用索引,以下面的字符串为例:
     
    字面直接使用索引:
     In [20]: 'hello'[1]
     Out[20]: 'e'
    
    用变量名引用一个序列,再使用索引:
    In [21]: a='hello'

    In [22]: a[1]
    Out[22]: 'e'

分片(切片):
    如果说索引是查看但个元素,那么分片操作就是来访问一定范围内的元素.  
    
    格式:序列 [ 起始索引号 : 终止索引号 : 步长 ]
            切片的范围: [ 起始索引号 , 终止索引号 )
            步长:默认为1    步长为2的切片包括的是从开始到结束每隔1的元素  
                 步长可以为负数  步长为 -1 代表将序列倒序输出
          起始索引号与终止索引号可以缺省,缺省值分别为0,len(序列)

序列相加:
    用加运算符可以进行同类型序列的连接操作            
         In [24]: [1,2,3,4]+[2,3,4]
         Out[24]: [1, 2, 3, 4, 2, 3, 4]

序列的乘法:
    序列*整型数字n 会生成一个新的序列  在这个序列中原来的序列会被重复n次

长度,最大值,最小值:
   len(序列)    返回序列中所包含元素的数量,即序列的长度
   max(序列)    返回序列中最大的元素  比较 ASCII 码的大小
   min(序列)    返回序列中最小的元素

成员资格:
    元素a in 序列      序列中是否有元素a 如果有,返回 True
      not in 与  in  恰好相反
#4.字符串str
    
   python 中的字符串被定义为引号之间的字符集合.   字符串能进行索引与切片.
       还有加法  乘法
      字符串一旦被创建,元素不可变

#5.元组tuple()与列表list()

 元组:()
    定义空元组: a = ()
    元组元素不可更改
    元组只有两个操作 (a 是一个元组):
    a.count(元素)   ##返回元素在a中重复的次数
    a.index(元素)   ##返回元素在a中的第一个索引号
   
 列表:[]
    定义空列表  a = []
    列表可以修改,能执行添加等操作
    a.append   在列表末尾追加新的对象
    a.extend   可以在列表末尾追加一个序列的多个值
    a.insert(位置,元素)   在某个位置(索引号)添加元素
    a.remove(元素)       移除元素在列表中第一个匹配值
    a.sort     排序
    a.count    返回元素在a中重复的次数
    a.index    返回元素在a中的第一个索引号
    a.pop      移除一个元素(默认最后一个),并返回该元素的值 ,也能以索引号作为参数移除该索引对应的元素
    a.reverse  倒序输出


#6. 分支语句

  if 判断条件 :
        第一个语句
        第二个语句
  else :
        第一个语句
        第二个语句


  if 判断条件 :
        第一个语句
        第二个语句
  elif 判断条件 :
        第一个语句
        第二个语句
  else

  python使用 冒号" : " 跟 缩进 来判断语句块的执行,C语言使用{}
  python没有 switch-case 语句,所以大部分分支语句都用 if-else
  缩进时最好用空格


#7.集合set()

  与数学上的概念一样,集合对象是一组无序排列的可哈希的值

  建立方法只有一些工厂方法,没有特别的语法格式

  a = set()     ##建立空集合

  {}     ##集合的符号 

  a = {}   ##建立出来的不是空的集合,是空的字典

  没有重复的值
  set()  强制转换为集合
  差集  s1 - s2  == s1.difference(s2)  s1.difference_update(s2) == s1=s1 - s2
  交集  s1 & s2  == s1.intersection(s2)
  并集  s1 | s2  == s1.union(s2)  
   s1.issubset(s2)   ##s1是不是s2的子集
   s1.issuperset(s2) ##s2是不是s1的超集
   s1.isdisjoint(s2) ##判断是否相交
 

###  脚本

  脚本第一行: #!/usr/bin/python    脚本运行环境,用 which python 查看
  为增加可移植性(脚本在不同版本python之间运行)
  #!/usr/bin/env python   使用当前版本的python运行

  第一个脚本(a+b):
 
  cat  input.py
  ************************************
    #!/usr/bin/python        ##脚本运行环境,用 which python 查看

    a = raw_input("please input a=")
    b = raw_input("please input b=")

    print int(a)+int(b)       ##如果用 print int(a+b)之后,先执行字符串的 a+b 再将 a+b 转换为int类型
  ************************************

  关于脚本里编码格式(python默认并不能识别中文):

   input.py:
    ************************************
     #!/usr/bin/python

     a = int(raw_input("请输入一个数字:"))
    ************************************
  [root@desktop pyjiaoben]# python input.py
  File "input.py", line 3
  SyntaxError: Non-ASCII character '\xe8' in file input.py on line 3, but no encoding   declared; see http://www.python.org/peps/pep-0263.html for details
   执行时会报错,不识别第三行的中文


 可以在脚本开头加下面这一行参数:
   #coding=utf-8        ##识别utf-8格式
  或者是下面这几行中的任意一行:
   #coding:utf-8
   #encoding:utf-8
   #enoding=utf-8
   #-*-coding:utf-8

  input.py:
    ************************************
     #!/usr/bin/python
     #coding=utf-8
     a = int(raw_input("请输入一个数字:"))
    ************************************

   [root@desktop pyjiaoben]# python input.py
   请输入一个数字:1


  第二个脚本(计算一个月有多少分钟):
    -----------------------------------------------------------
     #!/usr/bin/python
     #coding=utf-8

     daysPerMonth = int(raw_input("请输入你要计算的月的天数:"))
     hoursPerDay = 24
     minutesPerHour = 60

     print "本月有",daysPerMonth * hoursPerDay * minutesPerHour,"分钟"
    -----------------------------------------------------------

  第三个脚本(用户登陆):
    -------------------------------------------
    #!/usr/bin/python
    #coding=utf-8
    user = "fentiao"
    passwd = "westos"
    import getpass

    for i in range(1,4) :
        userName = raw_input("请输入账户名称:")
        passWord = getpass.getpass("请输入密码:")
        if userName == user and passWord == passwd :
            print("登陆成功!")
            break
        elif i == 3 :
            print("您的3次机会已用完,登录失败")
        else :
            print("帐号或密码错误,请重新登陆。")
            print("您还有%d次登陆机会\n" %(3-i))
   -------------------------------------------
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值