Python基础

1.Python简介

1.1 Python是什么编程语言

从编程语言的几个方向来说

  1. 编译型和解释型

    • 什么是编译型?什么是解释型?

      • 编译型:就是把源代码一下全部都编译成二进制文件(优点:执行效率高。缺点:开发效率较低)
      • 解释型:就是源代码从上到下一条一条交给计算机,计算机收到一条就执行一条(优点:开发效率高。缺点:执行效率较低)
    • Python属于解释型
  2. 静态语言和动态语言
    • 什么是静态语言?什么是动态语言?

      • 静态语言:创建变量时需声明变量的数据类型
      • 动态语言:创建变量时不需要声明变量的数据类型
    • Python属于动态语言
  3. 强类型定义语言和弱类型定义语言
    • 什么是强类型定义语言?什么是弱类型定义语言?

      • 强类型定义语言:如果一个变量指定了一个数据类型,那么如果不强制转换那它永远就都是这个数据类型了
      • 弱类型定义语言:一个变量可以赋予多个数据类型的值
    • Python属于强类型定义语言

2.Python入门

2.1输出

#python2 写法
print "Hello World!" #python3 写法
print("Hello World!")
#如果要输出带有换行的,那么就用三对引号
print("""
第一行
第二行
""")
#如果在执行时报错或者乱码(输出中文会)
#在py文件的头加入: #-*- coding:utf-8 -*-

2.2变量

  • 什么是变量?

    • 首先变量有一个名字,然后它有一个值。这就是变量

      • v(变量名) = 1(值)

      • v = 1
    • 补充:这里的v所指向的不是1这个值,而是这个值所存在的内存地址

  • 变量的命名规则:

    • 变量名由字母,数字,下划线组成

    • 变量不能是数字开头

    • 禁止使用Python里面的关键字和内置函数的名字

      • 常见关键字(help("keywords")可以查看)

        help("keywords")
        
        False               def                 if                  raise
        None del import return
        True elif in try
        and else is while
        as except lambda with
        assert finally nonlocal yield
        break for not
        class from or
        continue global pass
      • 如果记不住还有一点就是在使用IDE的时候如果是Python关键字那么它会变颜色

    • 要见名知意(如下:

      name = "nanke" #这让别人知道名字是nanke
      #而不是
      a = "nanke"
    • 变量名写法

      • 驼峰体:OnePage
      • 下划线法:one_page

2.3常量

  • ​ 常量就是一般不更改的变量,一般用大写来表示。如:

    LANGUAGE_NAME = "Python"

2.4注释

  • 单行注释

    #print("Hello World!")
  • 多行注释

    """
    name = "nanke"
    print(name)
    """

2.5基本数据类型

其实本不该在这里列举的,因为基本数据类型里面有好多好多的操作方法。在这里我就简单介绍一下什么是整形,什么是字符串,什么是布尔

  • 整形

    val = 123
  • 字符串

    val = "123"
  • 布尔

    val = True
    val = False

    这里,是引号包裹起来的都是字符串,不管里面是什么

    然后,不是引号包裹起来的数字几乎都是整型了

    布尔型就只有两个一个真一个假(True和False)

2.6输入

  • python2

    name = raw_input("请输入你的名字:")
  • python3

    name = input("请输入你的名字:")
  • 注意:不管是Python2还是Python3里面name接收的值的数据类型都是字符串类型。下面来举个栗子

    n1 = input("请输入一个数字:")
    n2 = input("请输入一个数字:")
    val = n1 + n2
    print(val)
    • 在这里我n1输入1 ,n2输入2。那么val的值会是什么呢?
    • 可能初学者会认为是3,但实际上并不是。
    • 它会输出12(注:这里的12依旧是字符串)
    • 为什么是12呢?因为这是做的字符串加法
    • 如果我想让它变成真正的1+2呢?如下
    n1 = input("请输入一个数字:")
    n2 = input("请输入一个数字:")
    val = int(n1) + int(n2)
    print(val)

2.7if else elif

  • if

    • if 就是如果XX 那就XX

    • 说人话就是 如果条件满足 就执行什么

    • 比如

    • if 你是男人:

      ​ 进男厕所

    if gender == '男':
    print('进男厕所')
  • if else

    • 如果理解了上一个,那么这个也就好理解了
    • 如果是男人就进男厕所,否则进入女厕所
    if gender == '男':
    print('进男厕所')
    else:
    print('进女厕所')
  • if elif else

    • 如果理解了前两个,这个就瞬间懂了
    if gender == '男':
    print('进男厕所')
    elif gender == '女':
    print('进女厕所')
    else:
    print('进宠物医院吧')

3.运算符

3.1while循环

  • 什么是循环?

    • 循环就好像是在操场跑圈,一直围绕着操场跑。
    • 当然,一个人也不能无止境的跑,那么肯定有停下来的条件。
    • 那么我让它跑十圈就停下来
    i = 1
    while i <= 10:
    print('跑了'+str(i)+'圈')
    i = i + 1
    """
    跑了1圈
    跑了2圈
    跑了3圈
    跑了4圈
    跑了5圈
    跑了6圈
    跑了7圈
    跑了8圈
    跑了9圈
    跑了10圈
    """
  • break

    • 如果在跑10圈的过程中,如果外面突然打雷下雨,那么是不是就得停下来了
    • 那么我让它在第五圈的时候就不跑了
    i = 1
    while i <= 10:
    print('跑了'+str(i)+'圈')
    if i == 5:
    break
    i = i + 1
    """
    跑了1圈
    跑了2圈
    跑了3圈
    跑了4圈
    跑了5圈
    """
    • 这里他跑了五圈就停止了。
    • 所以很明显break的作用就是退出这一整个循环
  • continue

    • 如果假设我们跑的这十圈里面可以使用接力,一个人替一个人跑一圈
    • 那么我在第五圈的时候使用接力
    i = 1
    while i <= 10:
    if i == 5:
    i = i + 1
    continue
    print('跑了'+str(i)+'圈')
    i = i + 1
    """
    跑了1圈
    跑了2圈
    跑了3圈
    跑了4圈
    跑了6圈
    跑了7圈
    跑了8圈
    跑了9圈
    跑了10圈 """
    • 这里可以看出来continue的作用就是退出这一个循环
  • 总结

    • break

      • 就是结束整个循环
      • 如果执行到break,那么就跳出这个循环体
    • continue
      • 就是结束这一次的循环
      • 如果执行到continue,并不会跳出整个循环,只是结束这个循环的这一次的循环

3.2格式化输出

  • %s

    name = 'nanke33'
    msg = "今天是个好日子,%s好开心"%(name,)
    print(msg)
    • 结果是

      • 今天是个好日子,nanke33好开心
  • %d和%i

    n1 = 1
    n2 = 2
    msg = "%d+%i=%d"%(n1,n2,n1+n2,)
    print(msg)
    • 结果是

      • 1+2=3
    • 这里%d和%i都是数字
  • %%

    print("80%%")
    • 结果是

      • 80%
    • 这里要使用百分号%就得多加一个百分号来转义,不然Python会以为一个百分号是一个占位符

3.3运算符

3.3.1 算术运算符

#  +
print(1+2) #3
# -
print(2-1) #1
# *
print(2*2) #4
# / 除 (python3)
print(10/4) #2.5
# / 除 (python2)
print(10/4) #2
# % 取模
print(9/2) #1
# ** n1**n2 n1的n2次方
print(3**2) #9
# // 取整数
print(10/4) #2

3.3.2比较运算符

#由于是比较运算,所以只有是或不是,返回布尔值,真或假
n1 = 1
n2 = 2
#等于
print(n1 == n2) #False
#不等于
print(n1 != n2) #True
#大于
print(n1 > n2) #False
#小于
print(n1 < n2) #True
#大于等于
print(n1 >= n1) #False
#小于等于
print(n1 <= n1) #True

3.3.3赋值运算符

n1 = 1
n2 = 2
# =
n3 = n1 + n2
# +=
n1 += n2 # n1 = n1 + n2
# -=
n1 -= n2 # n1 = n1 - n2
# *=
n1 *= n2 # n1 = n1 * n2
# /=
n1 /= n2 # n1 = n1 / n2
# %=
n1 %= n2 # n1 = n1 % n2
# **=
n1 **= n2 # n1 = n1 ** n2
# //=
n1 //= n2 # n1 = n1 // n2

3.3.4逻辑运算

  • and(与)

    print(True and False) #False
  • or(或)

    print(True or False) #True
  • not(非)

    print(not True) #False

3.3.5成员运算

  • in

    print('a' in 'abc')#True
  • not in

    print('a' not in 'abc')#False

4.数据类型

4.1整形(int)

  • 在Python2中有int 和 long

  • 在Python3中只有int

  • 在Python2中的/要显示小数

    from __future__ import division
    value = 3/2
    print(value)

4.2布尔型(bool)

  • True
  • False

4.2.1转换

#整形除了0为False,其余的都是True
val = bool(1) #True
val = bool(0) #False
#字符串除了空字符串为False,其余的都是True
val = bool("") #False
val = bool("nanke") #True
  • 其余的数据类型除了空的是False,非空的都是True

4.3字符串(str)

4.3.1字符串相加

n1 = "1"
n2 = "2"
val = n1 + n2
print(val)
#结果是12

4.3.2字符串相乘

  • 如果有学过其他语言的小伙伴打印n条Hello World!会用循环来。在Python中有个简单的方法就是字符串相乘

    val = "Hello World!\n"
    print(val*8)
    #结果
    #Hello World!
    #Hello World!
    #Hello World!
    #Hello World!
    #Hello World!
    #Hello World!
    #Hello World!
    #Hello World!

4.3.3索引

  • 字符串的索引其实很简单,就比如一个单词Hello,它的第一个是H第二个是e...类似的,找它第几个就是字符串的索引,使用方法:

    val = "Hello"
    print(val[1])
    #结果e
    • 这里有人问,为啥不是H而是e,不是第一个吗?
    • 因为计算机里面是从0开始数数的,而不是1.
    • 所以这里的val[1]就代表val这个变量的第二个单词啦

4.3.4切片

  • 什么是切片?切片其实就是把一个单词切成你想要的。

  • 如:Hello你只想要Hel怎么做呢?

    val = "Hello"
    print(val[0:3])
    #结果
    #Hel
    • 这个时候可能又会问,0-3不是四个吗?为啥只有三个
    • 这里我的理解是因为它的区间是半开半闭区间[0,3)

4.3.5步长

  • 什么又是步长呢?

  • 我们又拿Hello举栗子,如果我想要Hlo这要怎么办呢?

    val = "Hello"
    print(val[::2])
    #结果
    #Hlo
    • 可能机智的你已经意识到了对于字符串变量[a

      南柯33的Python学习笔记第(一)部分的更多相关文章

      1. OpenCV之Python学习笔记

        OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

      2. Deep learning with Python 学习笔记(7)

        介绍一维卷积神经网络 卷积神经网络能够进行卷积运算,从局部输入图块中提取特征,并能够将表示模块化,同时可以高效地利用数据.这些性质让卷积神经网络在计算机视觉领域表现优异,同样也让它对序列处理特别有效. ...

      3. Deep learning with Python 学习笔记(2)

        本节介绍基于Keras的CNN 卷积神经网络接收形状为 (image_height, image_width, image_channels)的输入张量(不包括批量维度),宽度和高度两个维度的尺寸通常 ...

      4. Python学习笔记:装饰器

        Python 装饰器的基本概念和应用 代码编写要遵循开放封闭原则,虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即: 封闭:已 ...

      5. python 学习笔记 12 -- 写一个脚本获取城市天气信息

        近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...

      6. Python学习笔记之常用函数及说明

        Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

      7. Python学习笔记(四)函数式编程

        高阶函数(Higher-order function) Input: 1 abs Output: 1 <function abs> Input: 1 abs(-10) Output: 1 ...

      8. python学习笔记整理——字典

        python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

      9. VS2013中Python学习笔记[Django Web的第一个网页]

        前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

      随机推荐

      1. [Luogu] 奶酪

        https://www.luogu.org/problemnew/show/3958 #include <iostream> #include <cstdio> #includ ...

      2. [USACO08FEB]酒店Hotel 线段树

        [USACO08FEB]酒店Hotel 线段树 题面 其实就是区间多维护一个lmax,rmax(表示从左开始有连续lmax个空房,一直有连续rmax个空房到最右边),合并时讨论一下即可. void p ...

      3. CF1174B Ehab Is an Odd Person(排序+结论)

        做法 一个显然的结论就是如果至少有一个奇数和一个偶数,那么是可以随意调整的,也就是升序排序 否则不可以进行任何操作 Code #include<bits/stdc++.h> using n ...

      4. cas系列-自定义异常提示(五)

        cas对于异常提示可以支持多语言,默认是英语,具体文件格式大同小异.这里以cas5.x版本为例. 官方推荐使用overlay方式部署,这样你只需要关注你自定义的配置即可. 获取自定义配置文件方式: 执 ...

      5. String源码分析

        前言:String类在日常开发过程中使用频率非常高,平时大家可能看过String的源码,但是真的认真了解过它么,笔者在一次笔试过程中要求写出String的equals方法,瞬间有点懵逼,凭着大致的理解 ...

      6. php手记之01-tp5框架安装

        1.1.介绍 在web领域,PHP是所有编程语言中比较受欢迎的一门语言! PHP已经诞生出几十种编程框架!但国内最热门和使用率最好的框架有Thinkphp和Laravel这两款PHP框架! 1.2.为 ...

      7. Cesium中常用的一些地理数据文件 以及数据相关的东西

        KML Cesium.KmlDataSource.load CZML Cesium.CzmlDataSource.load GeoJson Cesium.GeoJsonDataSource.load ...

      8. arcgis python 参数类型和含义

        数据类型 datatype 关键字 描述 地址定位器 DEAddressLocator 用于地理编码的数据集,存储地址属性.关联的索引以及用于定义将地点的非空间描述转换为空间数据这一过程的规则. 地址 ...

      9. android studio: 让项目通过阿里云 maven jcenter 下载依赖资源

        打开项目根目录下的 build.gradle(Project:项目名称一级的gradle),如下所示添加阿里 maven 库地址: // Top-level build file where you ...

      10. VUE判断可用对象是否为空

        方法一: JSON.stringify(formmanage_listVue.updataObj)=='{}' var data = {}; var b = (JSON.stringify(data) ...