python 学习第一天-基础知识

来源:互联网 发布:美工学徒招聘 编辑:程序博客网 时间:2024/05/20 06:50

(一)python文件类型

     (1)源代码  以  .py 为扩展名 不需要编译 

(2)字节代码  源文件经编译后生成的.pyc文件 

  编译方法:import py_compile

               py_compile.compile("hello.py")

(3)经过优化的源文件

       python -O -m py_compile hello.py   生成hello.pyo文件  之后python hello.pyo即可

(二) 变量

    数字,字母 下划线组成

但是数字不能作为开头

也不能使用关键字

   1、查看变量的内存地址  假如a=1  id(a)  查看变量的类型 type(a) 

   2、python 以数据为主  
       和c语言不同

(三)运算符 
+ -*/   %(加减乘除 求余) 注意:3/2=1  3.1/2=1.55 
 整除运算符 //   3.1/2=1

求幂次 **  比如2**5  二的五次方

> >= < <= == !=

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

  按位与 & 按位或 |   左移后移 <<   >>

运算符的优先级  从上往下由低到高

(四) raw_input()  可以从键盘获取输入  但是获取的变量是字符串  因此如果是想要数值 则需要进行转换

    比如 int(raw_input())   raw_input() 还可以在屏幕显示一些提示信息 比如 raw_input("please input a number")

   

(五)数据类型 

(1)数字 不用声明数据类型 a=123 。int是有范围的,如果不指明,且该数值不超过int型的范围 那么默认是 int 类型。

       如果超过该范围则为long类型 long型很大很大,几乎可以说任意整数都可以存储。为了区分普通整型和长整型  需要在长整型后加L或小写的l

    

     浮点型  3.1 -18.8   10e+2(就是100)  还可以定义复数  复数由实部和虚部表示  python中用j表示虚部  比如a=1+2j  type(a) 就是complex

   (2) a=123  和b="123" 是不一样的  双引号表示字符串

      定义字符串:可以使用单引号 '123'、双引号"123"、三重引号"""123"""

        比如 str1='let's go'  提示出错 因为会将let匹配成一个字符串 let 后面的就不认识是什么了 
 因此这里应该str1="let's go"  

还有 如果想要在字符串里面原样输出双引号则可以将双引号转义 比如 要对str赋为 let's "go" 则应该str="let's \"go\""   单引号也如此 比如 let's 'go' 则str="let's \'go\'"

 \n 换行  \t

      字符串 str='abcdef' 其实字符串的每一个字符都有自己的存储位置 可以通过索引来取字符串里的字符  比如str[0] 就是a str[6] 就是f 

 如果想要取得a[0]和a[5] 则应该是a[0]+a[5] (+加号的作用其实就是起一个连接的作用)

   切片:通过索引取得字符串的一片区域 比如 a[1:4] 即将a[1]到a[4]之间的bcd 取出来 (注意切片的时候最多有三个参数a[arg1:arg2:arg3] arg1:第一个参数是起始的索引号,第二个参数是结束的索引号后一个 第三个参数是步长(不写表示默认1)) 

   比如a[2:5] 取得cde   比如a[:4]取得abcd  a[2:]取得cdef   比如a[::2]取得ace a[1::2]取得bdf   a[-1]取得最后一个字符 a[-4:-1]取得def

 逆向取值 则步长为负数  比如想取得edc 则str[4:1:-1]


(六) 序列类型:字符串 元祖 列表  可以通过索引或者切片来操作

    (1)len(序列) 获取序列的长度

    (2) 连接两个序列 +

(3)在序列中 比如str1='abc'  str*3 表示将序列重复3次   即abcabcabc

(4) in  判断是否在序列中  返回值是布尔类型的  比如 str1='abcd'  判断‘a’ 这个字符是否在字符串中 'a' in str1  返回true .   'ac' in str1 返回false

 (5)max() min()返回序列中最大值 最小值    比如str1='abcd'  max(str1) 等于d  min(str1)等于 a

(6)cmp(str1,str2) 比较两个序列值  

   cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

   关于cmp的比较  :

(七) 元祖 :用括号 ()表示元祖 内容以逗号分割开  比如t=('phf',24,"female")   访问元祖元素  t[0] 表示phf

                    元祖可以存储很多内容,长短不一样类型不一。

                1、创建空元祖   比如 t=() 

               2、只有单一元素 则 t=('phf',)必须有逗号 为什么呢?

                       因为 如果 t=('phf') 没有逗号的话 type(t) 类型为字符串  具体是什么类型根据括号里面的元素  比如t=(2) 则 t的类型是int  

                 然而如果是 t=('phf',)有逗号的化 则t的类型是元祖

                注意 type(t) 为元祖类型 tuple  type(t[0]) 为 str   type(t[1]) 为 int

        3、元祖的内容不能被更改  t=('phf',24,"famale")   t[0]=phf   不能t[0]=abc  不能修改  这样会提示出错

                    

(八)上面说到元祖的数据不能被改变,则就有了列表的产生。

        列表:列表是可变类型的数据。 用中括号表示[]

 比如 t=["phf",24,'famale']   可以修改列表的数据 ,类型也可以改变  比如t[0]='abc'  或者t[0]=123 都是对的

   列表和元祖的差别还有一个 就是对于元祖 ,如果只有单个元素则定义元祖时 t=(‘phf’,)必须要有逗号  而列表不需要 即t=['phf']  即可

注意:假如修改了列表的某元素的内容 则列表的地址还是没变的。

   对于list 类型的对象 python定义了很多可以是用的方法。比如给某个列表mylist 添加一个元素 ,则mylist.append("abc") 即可  删除该列表的某个元素 mylist.remove(mylist[0]) 在括号里指定列表的某个元素  或者 匹配一个列表中的元素 比如mylist.remove("phf") 就会将mylist的phf这一个元素 

也可以del(mylist[0])

(九)字典  用{} 花括号

         1、是python里面唯一的一个映射类型(哈希表)  字典存储的数据是无序的  以键值对的形式出现

     比如  t={'name':'phf','age':24,'gender':'female'}  访问字典数据的时候采用键值访问 比如t['gender'] 取得female 

   2、可以对字典的数据进行修改 比如t['age']=18   字典和列表一样可以对数据进行修改 并且修改后列表和字典本身整体的地址没有改变!!

    3、比如删除字典的某个元素  有一下几种方法

               (1)del(t['age']) 删除了字典t中age的数据  或者del t['age'] 也可以

               (2)字典提供了一些方法操作字典。

                                     比如t.pop('age') 该方法删除age 的数据且返回被删除的数据 

               (3)t.clear() 删除该字典全部元素   该字典成为空字典

               (4)del t 整个字典被删除

  4、不能访问不属于字典的键值的数据   会报错,如果不想报错 则可以使用t.get()方法 比如t.get('phone') 如果没有一个键值是phone的话 不会报错,什么都不做。返回NULL。

 5、t.keys() 返回字典的键值列表 t.values返回字典的数据列表

 

0 0