Python tutorial :Python网站上的对 Python 语言和系统的基本概念和功能进行的非正式的介绍。

在学习Python之前,我们需要学会在各个平台配置Python的运行环境,下文中所给出的示例都是在Linux中运行的:

在Linux下安装Python3并配置所需环境:https://www.cnblogs.com/kimyeee/p/7250560.html

常用函数:
            exit():退出
            print():打印
            input():读取输入,返回值类型为str
            int():将str转换成整数
            range():生成一个整数序列,range(5) 是 0, 1, 2, 3, 4

数据类型和变量:
            整数
            浮点数
            字符串
            布尔值
            空值None
           
            变量:
                字符串变量生成顺序:a = "xyz"  先在内存中分配一块,并将这块内存保存的值设为“xyz”,之

让a指向这块内存

[wangml@iZwz976helaylvgqok97prZ pythoncode]$ python3 value.py
XYZ
xyz
[wangml@iZwz976helaylvgqok97prZ pythoncode]$ cat value.py
a = "xyz"
b = a
a = "XYZ"
print(a)
print(b)

常量:在Python中,通常用全部大写的变量名(例如PI)表示常量,但事实上PI仍然是一个变量,Python

根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用

法,如果你一定要改变变量PI的值,也没人能拦住你。

在Python中,有两种除法
                一种除法是/:  
                还有一种除法是//,称为地板除,两个整数的除法仍然是整数

>>> 10/3
3.3333333333333335
>>> 10//3
3

字符串和编码:
       
        编码:ASCII Unicode UT-8
      
        在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言

对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对

  应的字符

>>> print('包含中文的String')
包含中文的String
>>> ord('A')
65
>>> chr(65)
'A'

用于字符串的某些函数:
        
       由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传
       输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes。
       Python对bytes类型的数据用带b前缀的单引号或双引号表示:
       x = b'ABC'
       要注意区分'ABC'和b'ABC',前者是str,后者虽然内容显示得和前者一样,但bytes的每个字符都只占用
       一个字节。
       以Unicode表示的str通过encode()方法可以编码为指定的bytes

>>> 'ABC'.encode('ascii')
b'ABC'
>>> 'ABC'.encode('utf-8')
b'ABC'
>>> '你好'.encode('utf-8')
b'\xe4\xbd\xa0\xe5\xa5\xbd'

纯英文的str可以用ASCII编码为bytes,内容是一样的,含有中文的str可以用UTF-8编码为bytes。含有中
      文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错。  
     
      反过来,如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要
      用decode()方法

>>> b'ABC'.decode('ascii')
'ABC'

要计算str包含多少个字符,可以用len()函数

在Python中,采用的格式化方式和C语言是一致的,用%实现
      另一种格式化字符串的方法是使用字符串的format()方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}……,

list:一种有序的集合,可以随时添加和删除其中的元素。类似于C++的容器
            常用函数:
                len(LIST)函数可以获得list元素的个数
                LIST.append(DATA)往list中追加元素到末尾
                LIST.insert(INDEX, DATA)元素插入到指定的位置
                LIST.pop()删除list末尾的元素
                LIST.pop(INDEX)删除指定位置的元素

>>> name = ["Bob", "Marry", "Candy"]
>>> name
['Bob', 'Marry', 'Candy']
>>> len(name)
3
>>> name.append("Harry")
>>> name
['Bob', 'Marry', 'Candy', 'Harry']
>>> name.insert(2, "Jack")
>>> name
['Bob', 'Marry', 'Jack', 'Candy', 'Harry']
>>> name.pop()
'Harry'
>>> name
['Bob', 'Marry', 'Jack', 'Candy']
>>> name.pop(2)
'Jack'
>>> name
['Bob', 'Marry', 'Candy']

注意点:
                list内元素索引是从 0 开始,list中最后一个元素的索引为 len-1
                使用 = 对list 中某个元素赋值
                list里面的元素的数据类型也可以不同

>>> temp = ["Hurry", 12, 6.6]
>>> temp
['Hurry', 12, 6.6]
>>> temp[1] = 10
>>> temp
['Hurry', 10, 6.6]

tuple:一种有序列表叫元组,和list非常类似,但是tuple一旦初始化就不能修改
            需要注意的是:
                   当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
                   只有1个元素的tuple定义时必须加一个逗号,否则只是定义了一个以括号中的元素为值的变量

>>> name = ("Bob", "Jack")
>>> name
('Bob', 'Jack')
>>> name[1] = "Marry"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> temp = (3)
>>> temp
3
>>> temp = (3,)
>>> temp
(3,)

条件判断:
            if <条件1>:
                 <执行1>
            elif <条件2>:
                 <执行2>
            elif <条件3>:
                 <执行3>
            else:
                 <执行4>

[wangml@iZwz976helaylvgqok97prZ pythoncode]$ python3 elif.py
Please Input a Number: 6
6
正数
[wangml@iZwz976helaylvgqok97prZ pythoncode]$ cat elif.py
num = input("Please Input a Number: ")
temp = int(num)
print('%d' % (temp))
if temp < 0:
print("负数")
elif temp > 0:
print("正数")
else:
print("")

循环:
            for...in循环:依次把list或tuple中的每个元素迭代出来

[wangml@iZwz976helaylvgqok97prZ pythoncode]$ python3 for.py
Bob
Marry
Jack
[wangml@iZwz976helaylvgqok97prZ pythoncode]$ cat for.py
names = ["Bob", "Marry", "Jack"] for name in names:
print(name)

while循环:只要条件满足,就不断循环,条件不满足时退出循环

[wangml@iZwz976helaylvgqok97prZ pythoncode]$ python3 while.py
5
4
3
2
1
Over!
[wangml@iZwz976helaylvgqok97prZ pythoncode]$ cat while.py
temp = 5 while temp > 0:
print(temp)
temp -= 1
print("Over!")

break:可以提前退出循环

[wangml@iZwz976helaylvgqok97prZ pythoncode]$ python3 while.py
5
4
Over!
[wangml@iZwz976helaylvgqok97prZ pythoncode]$ cat while.py
temp = 5 while temp > 0:
if temp == 3:
break print(temp)
temp -= 1 print("Over!")

 continue:跳过当前的这次循环,直接开始下一次循环

[wangml@iZwz976helaylvgqok97prZ pythoncode]$ python3 while.py
5
4
2
1
Over!
[wangml@iZwz976helaylvgqok97prZ pythoncode]$ cat while.py
temp = 5 while temp > 0:
if temp == 3:
temp -= 1
continue print(temp)
temp -= 1 print("Over!")

dict:字典,类似于C++中的map,使用键-值(key-value)存储查找速度快

>>> table = {"Bob": 90, "Marry": 93, "Jack": 100}
>>> table
{'Bob': 90, 'Marry': 93, 'Jack': 100}
>>> table["Jack"]
100

向一个dict中加入数据:DICTNAME[KEY] = VALUE,在dict中,每个KEY都是唯一的,只能与一个

     VALUE对应,如果多次添加具有同一个KEY的键--值,则先被添加的数据将会被后添加的覆盖

>>> temp = {"A": 1}
>>> temp["A"]
1
>>> temp["A"] = 2
>>> temp["A"] = 3
>>> temp["A"]
3

判断某个dict中是否存在某个KEY:
                 1.通过in判断key是否存在
                 2.通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value

>>> "Bob" in table
True
>>> table.get("Hurry", -1)
-1
>>> table
{'Bob': 90, 'Marry': 93, 'Jack': 100}

DICT.pop(KEY)用于删除dict中的某个键--值对

>>> table
{'Bob': 90, 'Marry': 93, 'Jack': 100}
>>> table.pop("Bob")
90
>>> table
{'Marry': 93, 'Jack': 100}

dict与list比较:
           dict特点:
                查找和插入的速度极快,不会随着key的增加而变慢;
                需要占用大量的内存,内存浪费多。
            list特点:
              查找和插入的时间随着元素的增加而增加;
                占用空间小,浪费内存很少。
           
          注意:dict的key必须是不可变对象,在Python中,字符串、整数等都是不可变的,因此,可以放心
                       地作为key。而list是可变的,就不能作为key

set:存储一组没有重复的KEY,要创建一个set,需要提供一个list作为输入集合
          
        SETNAME.add(KEY) 向set中添加指定元素
        SETNAME.remove(KEY) 在set中取出指定元素
       
        set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作

>>> temp = set([1, 2, 2, 3, 4, 4])
>>> temp
{1, 2, 3, 4}
>>> temp.add(5)
>>> temp.remove(2)
>>> temp
{1, 3, 4, 5}
>>> ttemp = set([1, 2, 7])
>>> ttemp
{1, 2, 7}
>>> temp & ttemp
{1}
>>> temp | ttemp
{1, 2, 3, 4, 5, 7}

  set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放

入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”

注意:
      1.print()会依次打印每个字符串,遇到逗号“,”会输出一个空格

    2.单引号与双引号的区别,强引用、弱引用

    3.以#开头的语句是注释

   4.Python的语法比较简单,采用缩进方式

     缩进有利有弊。好处是强迫你写出格式化的代码,但没有规定缩进是几个空格还是Tab。按照约

    定俗成的管理,应该始终坚持使用4个空格的缩进。

      缩进的另一个好处是强迫你写出缩进较少的代码,你会倾向于把一段很长的代码拆分成若干函

数,从而得到缩进较少的代码。

     缩进的坏处就是“复制-粘贴”功能失效了,这是最坑爹的地方。当你重构代码时,粘贴过去的

代码必须重新检查缩进是否正确。此外,IDE很难像格式化Java代码那样格式化Python代码。

     5.Python程序是大小写敏感的

     6.如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''

内部的字符串默认不转义

    7.变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量

时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。

    8.Python的整数没有大小限制,而某些语言的整数根据其存储长度是有大小限制的,例如Java

对32位整数的范围限制在-2147483648-2147483647。
         Python的浮点数也没有大小限制,但是超出一定范围就直接表示为inf(无限大)
      9.在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换

为UTF-8编码
      10.在操作字符串时,我们经常遇到str和bytes的互相转换。为了避免乱码问题,应当始终坚持

使用UTF-8编码对str和bytes进行转换

     11.input()返回的数据类型是str

  

Python基础——数据类型、流程控制、常用函数的更多相关文章

  1. python基础之流程控制(2)

    今天将是基础篇的最后一篇,咱们来补上最后一个内容,流程控制for循环 For 循环 一.为什么有for循环? for循环能做的事情,while循环全都可以实现,但是在某些情境下,for循环相对于whi ...

  2. python基础之流程控制、数字和字符串处理

    流程控制 条件判断 if单分支:当一个“条件”成立时执行相应的操作. 语法结构: if 条件: command 流程图: 示例:如果3大于2,那么输出字符串"very good" ...

  3. python基础之流程控制

    流程控制之----if 流程控制,是指程序在运行时,个别的指令(或者是陈述.子程序)运行或者求值的顺序.人生道路上的岔口有很多,在每个路口都是一个选择,在每个路口加上一个标签,选择哪个就是满足哪个条件 ...

  4. python基础:流程控制案例:

    1,简述编译型与解释型的语言,且分别列出你知道的哪些语言属于编译型,哪些属于解释型. 答:简单理解编译型语言类似谷歌翻译,整篇读入整篇翻译,代表语言有C语言,解释型语言类似同   声传译,读入一行翻译 ...

  5. python基础之流程控制(1)

    一.分支结构:if 判断 1.什么要有if 判断语句? 让计算机可以像人一样根据条件进行判断,并根据判断结果执行相应的流程. 2.基本结构 单分支结构 # 单分支 if 条件1: 代码1 代码2 代码 ...

  6. python基础之流程控制(if判断和while、for循环)

    程序执行有三种方式:顺序执行.选择执行.循环执行 一.if条件判断 1.语句 (1)简单的 if 语句 (2)if-else 语句 (3)if-elif-else 结构 (4)使用多个 elif 代码 ...

  7. Python基础之流程控制for循环

    目录 1. 语法 2. for+break 3. for+continue 4. for循环嵌套 1. 语法 while循环可以对任何内容循环,但循环次数不可控 for循环基于容器类型的长度,循环次数 ...

  8. Python 基础知识----流程控制

    判断语句 循环语句 嵌套

  9. Python基础之流程控制if判断

    目录 1. 语法 1.1 if语句 1.2 if...else 1.3 if...elif...else 2. if的嵌套 3. if...else语句的练习 1. 语法 1.1 if语句 最简单的i ...

  10. Python基础之流程控制while循环

    目录 1. 语法 2. while+break 3. while+continue 4. while+else 1. 语法 最简单的while循环如下: ''' while <条件>: & ...

随机推荐

  1. 【转载】CentOS 7安装Python3.5,并与Python2.7兼容并存

    CentOS 7下安装Python3.5 CentOS7默认安装了python2.7.5,当需要使用python3的时候,可以手动下载Python源码后编译安装. 1.安装python3.5可能使用的 ...

  2. HDU 5527 Too Rich

    Too Rich Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Total ...

  3. poj2104&&poj2761 (主席树&&划分树)主席树静态区间第k大模板

    K-th Number Time Limit: 20000MS   Memory Limit: 65536K Total Submissions: 43315   Accepted: 14296 Ca ...

  4. Datatable 生成json格式

    public string GetJsonFromDataTable(DataTable dt, int total, bool ShowFooter, string fields, string i ...

  5. HackerRank# Fibonacci Modified

    原题地址 竟然64位都要爆,这是要大整数乘法的节奏吗?我才不要写大整数乘法呢,用Ruby干掉 代码: # Enter your code here. Read input from STDIN. Pr ...

  6. 刷题总结——shortest(ssoi)

    题目: 题目背景 SOURCE:NOIP2015-SHY-3 题目描述 给定一张 n 个点的有向带权完全图,和一个数组 a[] ,请按顺序删除数组中的点,请求出在删除点 a[i] 以前,所有未删除点对 ...

  7. bzoj1975: [Sdoi2010]魔法猪学院【k短路&A*算法】

    1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 2446  Solved: 770[Submit][Statu ...

  8. AFNetworking实时监测网络连接

    
// 网络变化消息 [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(checkNetwork) ...

  9. 使用nginx时,让web取得原始请求地址

    问题描述 当使用nginx配置proxy_pass参数以后,后端web取得的Request.Uri是proxy_pass中配置的地址,而不是client访问的原始地址 举例说明: 假设nginx配置文 ...

  10. Perl、PHP、Python、Java和Ruby的比较

    提问 ◆ Perl.Python.Ruby和PHP各自有何特点? ◆ 为什么动态语言多作为轻量级的解决方案? ◆ LAMP为什么受欢迎? ◆ Ruby on Rails为什么会流行? ◆ 编程语言的发 ...