day01_20170423_python-基础(一)

一、Python介绍

      -为了能让程序员减少开发成本。

二、Python和其他语言对比

     -c:机器码

     -其他高级语言:字节码-机器码

三、Python的种类

      -Cpython:先给代码->c语言直接转成字节码->在转成机器码(一行一行执行)

      -pypy:拿到代码->c语言直接转成字节码-再转成机器码 全部转换完成->再去执行

      -其他Python:代码->转化成自己语言的字节码->机器码

四、Python基础

      Python规则:学习一门语言,实际上就是学习他的规则。

1.安装:Python解释器

2.写程序(在D:python201720170423目录下新建1.txt,并写 print('hello world'),这样就写完了一个程序,把他交给Python解释器进行编译。如下cmd中执行语句)

      C:Userszhaichao.DS>D: oolspythonpython.exe D:python2017201704231.txt

          #a.打开文件,读取文件内容

          #b.读取之后,进行词法和语法分析,分析一下我们写的语法是不是人家的规则

          #c.转换成字节码,然后在转成机器码进行运行。

  还有一种形式就是,不写文件名,如:C:Userszhaichao.DS>D: oolspythonpython.exe cmd执行以下,给一行,就解释一行。

  这两种方式都是什么时候用呢?我们写的程序一般都是用第一种方式执行。而第二种更多的用于自己调试,一些功能性的代码,一次性调试。

3.解释器两种执行方式

   Window:

           1)C:Userszhaichao.DS>D: oolspythonpython.exe D:python2017201704231.txt(文件解析)

           2)C:Userszhaichao.DS>D: oolspythonpython.exe(单行解析)

   Linux:

           1)C:Userszhaichao.DS>D: oolspythonpython.exe D:python2017201704231.txt(文件解析)

           2)C:Userszhaichao.DS>D: oolspythonpython.exe(单行解析)

           3)除了以上两种,还有个特殊的文件头部细信息:

               #!/usr/bin/python  这个必须写在最顶部,/usr/bin/python这是Linux中解释器的路径

               写完之后,给这个文件一个可执行的权限,chmod 755 1.py。执行 ./1.py ,他会自动根据头部解释器的路径找到解释器,执行代码。跟shell差不多。

五、编码

     asicc-unicode-utf-8- gb2312-gbk

     -*- coding:utf-8 -*-

六、pycharm

  使用:

      1、  new project

      2、  new 创建文件夹

      3、  new py文件

      4、  在py文件中右键,run xx.py

       注意:1、设置编码

                  2、设置模板

                  3、设置大小

       注意:使用pycharm的坑

七.运算符

算数运算

 

比较运算

 

注意执行顺序:当比较运算中有and和or,其执行顺序为:and与or没有优先级,含or的运算符,如果or前面的成立,后面的不管成不成立都不用看了。Or两个中只要有一个成立就好了。

#1==1为true,但是后面为or,那么后面就不用看了
if 1 ==1 or 1 > 2 and 1==4:
    print('正确')
else:
    print('错误')

如果是含and的运算符,and前面的如果是错误的,那后面的也不需要看了。但是如果and前面的是正确的,那么还得继续做比较。因为后面是true还是false会影响整个条件,只要and前面遇到false的条件,后面的就不用看了,整体为false。or前面遇到true的,后面的也不需要看了,整体为true。切记:没有优先级,一个一个往后看。

 赋值运算

 

逻辑运算

 

注意:如果是你自己定义的条件,含and或者or的,你可以通过加上括号来决定条件判定的优先级。

成员运算

 

In在什么时候用呢?

Content =”Alex 是个好人”

If  “好人” in content:

         Print(‘包含敏感字符’)

Else:

         Print(content)

In多用在判断某个元素是否包含在其他元素中。与其相反的为not in

八、数据类型

-整数(包括了长整型,已经没有长整型了)

   -创建一个数字

a=123

a=int(123)

-转换

age=”19”

new_age=int(age)

怎么验证我输入的变量是什么类型呢?

如:

   a=123

   print(type(a))

-布尔值

 -创建

   True

   False

 -转换

   bool()表示把某个值转换成布尔类型

   例: v = bool(-5)

        print(v)

在数字里面,转换成布尔类型的时候,数字转换的时候只有0是false,其他的都是 true

字符串可以转成布尔类型的么?

对于字符串,只有””是false,其他是true

-字符串

 -创建字符串

  A=”alex”

  A=str(‘alex’)

 -转换

  Age=19

  New_age = str(age)

-字符串的拼接

第一种拼接:

name='alex'

gender = '女'

new_str = name + gender

print(new_str)

第二种拼接:

S%表示占位符,临时占位,方便以后修改,字符串格式化

 name='我叫李杰,性别:%s, 我今年%s岁'

new_str = name %('男',19)

print(new_str)

占位符是有严格的顺序的。%s的s代表的是字符串;后面的年龄%s也可以写成%d,d代表的是数字

占位符还可以这样写:

name='我叫李杰,性别:%s, 我今年%s岁'  %('男',19)

print(name)

为什么非要做类型转换呢?因为只有是同一种类型的时候,比较起来才有意义。

 字符串的其他功能:

   移除空白:

注意:val = “ alex ”

      表示换行符。Strip也可以移除换行

分割字符串

长度:

注意:在Python3里面汉字和字母在一起,求长度都按字符算

例:

Val=”李杰sb”

V= len(val)

Print(v)

结果为4

索引:

Val = “李杰sb”

V= val[4]

Print(v)

索引的位置从0开始

切片:

---列表

创建:

                    a = ['alex','狗','eric',123]

                    a = list(['alex','狗','eric',123])

                   

                 in判断:

                

                    if 'al' in a:

                        pass

                       

                    if 'al' in a[0]:

                        pass

       

                 索引:

                    val = a[0]

                   

                 长度:

                    val = len(a)

                   

                 切片:

                    a = ['alex','狗','eric',123]

                    v = a[0::2]

                    print(v)

                

                 追加:

                    a = ['alex','狗','eric',123]

                    a.append('xxoo')

                    print(a)

                 插入:

                    a = ['alex','狗','eric',123]

                    a.insert(0,'牛')

                    print(a)

                 删除:

                    a = ['alex','eric','狗','eric',123]

                    # a.remove('eric')

                    del a[0]

                    print(a)

                   

                更新:

                    a = ['alex','eric','狗','eric',123]

                    a[1] = '阿斯顿发送到'

                    print(a)

                           

                For循环:

                    a = ['alex','eric','狗','eric',123]

                    for item in a:

                        print(item)

                        # break

                        # continue

字典操作:

创建字典:

V= {

         ‘name’:’alex’,

    ‘password’:’123123’

}

注意:字典是无序的

#常用操作

如果v是一个用户信息,我是不是可以获取当前用户的用户名

n=v[‘name’]  根据key获取value

print(n)

#如果没有age,就是增加;如果有,就是修改

v[‘age’]=19

print(v)

#删除

del v[‘name’]

print(v)

字典是否可以进行for循环

    # 循环

                # for item in v.keys():

                #     print(item)

                # for item in v.values():

                #     print(item)

                # for key,val in v.items():

                #     print(key,val)

       

        

                print(len(user_dict))

嵌套:字典和列表之间相互嵌套

列表里面可以嵌套列表,可以无限嵌套

原文地址:https://www.cnblogs.com/zhaic/p/6802452.html