1、python是什么?

python是动态解释型的强类型定义语言。

python官方版本的解释器是CPython。该解释器使用C语言开发。

当前主要使用3.x版本的python。

2、第一个python程序

>>> print("Hello World!")
Hello World!

Linux下使用./xxx.py执行python执行python程序,在文件开头添加如下代码:

#!/usr/bin/env python

3、字符编码

英文编码系统:ASCII,可以表示255个字符

中文编码系统:GB2312(1980,7445个字符)-->GBK1.0(1995,21886个字符,中文Windows默认编码)-->GB18030(2000)

Unicode:万国码,世界统一的一种编码系统

UTF-8:Unicode的子集,对Unicode进行优化

python 3.x版本的默认编码是UTF-8。如需要定义程序文件的编码在开头添加# -*- coding: 字符编码 -*-语句。

e.g:

# -*- coding: utf-8 -*-

4、变量

a = 1
#声明一个变量,变量名a,值为1

定义变量的规则:

  • 变量名只能是 字母、数字或下划线的任意组合
  • 变量名的第一个字符不能是数字
  • 以下关键字不能声明为变量名:

    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']

  • 变量名最好能让人明了该变量是用来做什么的

    5、程序中的注释

    # 单行注释      '''多行注释''' or """多行注释"""

    6、用户交互

    input用来接收用户的输入

    e.g:

    >>> a = input("请输入:")
    请输入:123
    >>> print(a)
    123

    注意:input默认的数据类型为字符型,使用int()可以将其转换为整型

    使用type()可以查看变量的数据类型,e.g:

    >>> a = "abc"
    >>> print(type(a))
    <class 'str'>

    输出小技巧:格式化输出

    e.g:

    name = "Python"
    age = 28
    print("Name is %s,Age is %s"%(name,age))    #%s字符串  %d 整数  %f 浮点
    print("Name is {_name},Age is {_age}".format(_name=name,_age=age))#结果
    Name is Python,Age is 28
    Name is Python,Age is 28

    小技巧:密文输入

    需导入getpass模块,使输入的内容不可见

    e.g:

    >>> getpass.getpass("请输入密码:")
    请输入密码:    #看不见我看不见我
    'assdfghh'

    7、if…else语句

    if 条件:  #如果代码块
    else:   #否则代码块

    if 条件:  #如果代码块
    elif 条件:    #或者代码块
    else:   #否则代码块

    8、while循环

    while 条件:代码块
     
    #continue 跳出本次循环,进入下次循环

    #break 结束整个循环

    python中while可以搭配else使用,e.g:

    a = 5
    while a<6:if a/2 == 1:breaka += 1
    else:print("我就是else!")#结果
    我就是else!

    9、for循环

    e.g:

    for i in range(3):print(i)i += 1
    #结果

    0
    1
    2

    for i in range(1,3):print(i)i += 1#结果
    1
    2

    for i in range(1,5,2):print(i)i += 1#结果
    1
    3

    for循环中也有continue和break方法

    10、python中的模块

    Python有非常丰富和强大的标准库和第三方库

    import 模块
    #程序开头加上该代码,加载某个模块,接下去就可以使用该模块提供的功能

    11、python数据类型

    数字:int(整型)、float(浮点)、complex(复数)

    布尔值:True 、False

    字符串:”Python”

    12、python数据运算

    算术运算

    比较运算

    赋值运算

    按位运算

    逻辑运算

    成员运算

    身份运算

    运算优先级

    三元运算

    e.g:

    name = "Python"
    if 1>0:name = "Python"
    else:name = "JAVA"
    print(name)#结果
    Pythonname = "Python"
    if 1 == 0:name = "Python"
    else:name = "JAVA"
    print(name)#结果
    JAVA

    13、列表

    列表是有序的,依靠下标来取值。

    >>> name = ["Python","JAVA","C++"]
    #定义一个列表>>> name[0]
    'Python'
    >>> name[1]
    'JAVA'
    >>> name[-1]
    'C++'
    >>> name[-2]
    'JAVA'
    #通过列表的下标来取值,下标从0开始,负数下标从列表的最后一个开始计算,从-1开始

    切片

    >>> name = ["Python","JAVA","C++","C","C#"]
    >>> name[0:2]
    ['Python', 'JAVA']
    #列表的切片,从下标0取到下标1(结束的位置不包括)
    >>> name[:2]
    ['Python', 'JAVA']
    #下标为0时可以不写#注意负数下标
    >>> name[-3:]
    ['C++', 'C', 'C#']
    >>> name[-3:-1]
    ['C++', 'C']
    #使用负数下标切片时,仍然从右到左计算,下标-1不写时,取到-1下标的值,写的时候则不包括-1下标的值>>> name[0:-1:2]
    ['Python', 'C++']
    >>> name[::2]
    ['Python', 'C++', 'C#']
    #同上的负数下标,注意区别,第三个值为步长

    追加

    >>> name.append("Perl")
    >>> name
    ['Python', 'JAVA', 'C++', 'C', 'C#', 'Perl']

    插入新值

    >>> name.insert(2,"Ruby")
    >>> name
    ['Python', 'JAVA', 'Ruby', 'C++', 'C', 'C#', 'Perl']
    >>> name.insert(-1,"Lisp")
    >>> name
    ['Python', 'JAVA', 'Ruby', 'C++', 'C', 'C#', 'Lisp', 'Perl']
    #将新值插入某个值之前

    修改

    >>> name[2] = "PHP"
    >>> name
    ['Python', 'JAVA', 'PHP', 'C++', 'C', 'C#', 'Lisp', 'Perl']

    删除

    >>> name.remove("PHP")
    >>> name
    ['Python', 'JAVA', 'C++', 'C', 'C#', 'Lisp', 'Perl']
    >>> del name[5]
    >>> name
    ['Python', 'JAVA', 'C++', 'C', 'C#', 'Perl']
    >>> name.pop()
    'Perl'
    >>> name
    ['Python', 'JAVA', 'C++', 'C', 'C#']
    >>> name.pop(3)
    'C'
    #pop不加下标时默认删除最后一个值,pop可以返回被删除的值
    >>> name
    ['Python', 'JAVA', 'C++', 'C#']

    其他的一些方法

    >>> name.index("JAVA")
    1
    #返回值的下标>>> name.count("C++")
    1
    #计数>>> name
    ['Python', 'JAVA', 'C++', 'C#']
    >>> name.reverse()
    >>> name
    ['C#', 'C++', 'JAVA', 'Python']
    #翻转整个列表>>> name
    ['Python', 'JAVA', 'C++', 'C#']
    >>> name.sort()
    >>> name
    ['C#', 'C++', 'JAVA', 'Python']
    #列表的排序>>> a = ["a","b","c"]
    >>> name.extend(a)
    >>> name
    ['C#', 'C++', 'JAVA', 'Python', 'a', 'b', 'c']
    #合并两个列表>>> a.clear()
    >>> a
    []
    #清除整个列表的值>>> name_copy = name.copy()
    >>> name_copy
    ['C#', 'C++', 'JAVA', 'Python', 'a', 'b', 'c']
    #复制列表

    列表的嵌套

    >>> name = ["Python",[1,2,3],"JAVA","C++"]
    >>> name
    ['Python', [1, 2, 3], 'JAVA', 'C++']
    >>> name[1][2]
    3

    列表的循环

    name = ["Python","JAVA","C++"]
    for i in name:print(i)#结果
    Python
    JAVA
    C++

    小技巧

    name = ["Python","JAVA","C++"]
    for index,item in enumerate(name):print(index,item)#结果
    0 Python
    1 JAVA
    2 C++
    #同时循环列表的下标及值

    14、元组

    元组是不可修改的列表,也叫只读列表

    >>> name = ("Python","JAVA","C++")
    >>> name
    ('Python', 'JAVA', 'C++')
    #创建一个元组

    元组只有count与index

    >>> name.count("C++")
    1
    >>> name.index("C++")
    2

    list(),将元组转换为一个列表

    >>> a = list(name)
    >>> a
    ['Python', 'JAVA', 'C++']

    小技巧,无关元组

    \033[31,32;1m%s\033[0m,对%s着色

    15、字符串的常用操作

    字符串可以使用下标和切片操作。

.upper()/lower()  #返回一个新字符串,其中原字符串的所有字母都被相应地转换为大写或小写。
.startswith()/.endswith() #返回 True, 如果它们所调用的字符串以该方法传入的字符串开始或结束。
>>> a = "a:b:c:d:e:f"
>>> a.split(":")
['a', 'b', 'c', 'd', 'e', 'f']
a.strip()  #删除字符串两边的空白字符(空格、制表符和换行符)
a.rstrip()  #删除字符串右边的空白字符(空格、制表符和换行符)
a.lstrip()  #删除字符串左边的空白字符(空格、制表符和换行符)

>>> a = "{'a':'b','c':'d'}"
>>> type(a)
<class 'str'>
>>> b = eval(a)
>>> b
{'a': 'b', 'c': 'd'}
>>> type(b)
<class 'dict'>
#将格式化的字符串转换成字典,同理可以转换列表跟元组

name = "Python"
name.capitalize()  #首字母大写
name.casefold()   #大写全部变小写
name.ljust(50,"-") #输出'Python---------------------------'
name.center(50,"-")  #输出 '---------------------Python----------------------'
name..rjust(50,"-") #输出'--------------------Python'
name.count('t') #统计t出现次数
name.encode()  #将字符串编码成bytes格式
name.endswith("n")  #判断字符串是否以n结尾"Pyt\thon".expandtabs(10) #输出'Pyt      hon', 将\t转换成多长的空格 name.find('y')  #查找y,找到返回其索引, 找不到返回-1
name.index('y')  #返回y所在字符串的索引
'9aA'.isalnum()   #判断是否是字母和数字
'9'.isdigit() #判断是否整数
name.isnumeric #方法检测字符串是否只由数字组成。这种方法是只针对unicode对象。
name.isprintable #判断是否为可打印字符串
name.isspace  #判断是否为空格
name.istitle  #判断是否首字母大写,其他字母小写
name.islower()/isupper() #判断是否为小写/大写
>>> "|".join(['Python', 'JAVA', 'C++'])
'Python|JAVA|C++'
>>> a = "a:b:c:d:e:f"
>>> a.partition(":")
('a', ':', 'b:c:d:e:f')
.replace(old,new,x)  #将第x个字符替换
.swapcase #大小写互换
.zfill() #返回指定长度的字符串,原字符串右对齐,前面填充0
.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则

16、字典

字典:键-值(key - value),key唯一,无序

>>> a = {"福建":"福州","广东":"广州","江西":"南昌"}
>>> a
{'福建': '福州', '广东': '广州', '江西': '南昌'}
#创建一个字典>>> a["广西"] = "南宁"
>>> a
{'福建': '福州', '广东': '广州', '江西': '南昌', '广西': '南宁'}
#增加>>> a["广西"] = "广西"
>>> a
{'福建': '福州', '广东': '广州', '江西': '南昌', '广西': '广西'}
#修改>>> a.pop("广西")
'广西'
>>> a
{'福建': '福州', '广东': '广州', '江西': '南昌'}
>>> del a["江西"]
>>> a
{'福建': '福州', '广东': '广州'}
#删除>>> a = {"福建":"福州","广东":"广州","江西":"南昌"}
>>> a.popitem()
('江西', '南昌')
#随机删除>>> a = {"福建":"福州","广东":"广州","江西":"南昌"}
>>> "福建" in a
True
#查找>>> a.get("福建")
'福州'
>>> a["福建"]
'福州'
#取某个键的值,使用get方法如果键不存在则返回None,直接取键不存在则报错>>> a.values()
dict_values(['福州', '广州', '南昌'])
>>> a.keys()
dict_keys(['福建', '广东', '江西'])
>>> a.items()
dict_items([('福建', '福州'), ('广东', '广州'), ('江西', '南昌')])
>>> b = list(a.items())
>>> b
[('福建', '福州'), ('广东', '广州'), ('江西', '南昌')]
#返回值可以用于循环>>> a.setdefault("福建")
'福州'
>>> a.setdefault("福建","南宁")
'福州'
>>> a.setdefault("广西","南宁")
'南宁'
>>> a
{'福建': '福州', '广东': '广州', '江西': '南昌', '广西': '南宁'}
#不存在则增加,存在则返回该键的值>>> b
{1, 2, 3}
>>> b = {1:2,3:4,5:6}
>>> a.update(b)
>>> a
{'福建': '福州', '广东': '广州', '江西': '南昌', '广西': '南宁', 1: 2, 3: 4, 5: 6}
#合并两个字典>>> a = dict.fromkeys([1,2,3],"abc")
>>> a
{1: 'abc', 2: 'abc', 3: 'abc'}a = {"福建":"福州","广东":"广州","江西":"南昌"}
for i in a:print(i,a[i])
#字典的循环,结果
福建 福州
广东 广州
江西 南昌

17、集合

集合是一个无序的,不重复的数据组合。作用:

  • 去重,把列表变成集合,自动去重
  • 关系测试,取交集、并集等关系
s = set([3,5,9,10])      #创建一个数值集合
t = set("Hello")         #创建一个唯一字符的集合
t.add('x')            # 添加一项
s.update([10,37,42])  # 添加多项
t.remove('H') # 删除
len(s) #长度  
s.copy() #返回 set “s”的一个浅复制
x in s  #测试 x 是否是 s 的成员
x not in s  #测试 x 是否不是 s 的成员
 
s.issubset(t)
s <= t
#测试是否 s 中的每一个元素都在 t 中
s.issuperset(t)
s >= t
#测试是否 t 中的每一个元素都在 s 中
s.union(t)
s | t
#返回一个新的 set 包含 s 和 t 中的每一个元素
s.intersection(t)
s & t
#返回一个新的 set 包含 s 和 t 中的公共元素
s.difference(t)
s - t
#返回一个新的 set 包含 s 中有但是 t 中没有的元素
s.symmetric_difference(t)
s ^ t
#返回一个新的 set 包含 s 和 t 中不重复的元素  

18、文件操作

文件的常用操作

f =  open("文件名","模式")
#打开文件,模式有以下几种:
r 只读模式(默认)
w 只写模式(文件不存在则建立,文件存在则覆盖)
a 追加模式(文件不存在则建立,文件存在则追加)
r+ 读写模式(可读可写可追加)
w+ 写读模式
a+ 追加读模式
rb、wb、ab 处理二进制文件
U 将\r \n \r\n自动转换成\n(与r或r+模式同时使用)f.read()  #读文件
f.readline() #读一行
f.readlines() #将文件每一行读如一个列表f.write() #将内容写入文件f.close() #关闭文件f.tell()  #返回指针位置,按文件中字符的个数计算
f.seek()  #回到某个指针位置f.encoding() #返回文件所使用的编码

文件的其他一些操作

f.readable()  #判断文件是否可读
f.writeable()  #判断文件是否可写
f.closed()  #判断文件是否关闭
f.seekable()   #判断是否可以移动指针
f.name()   #返回文件名
f.isatty()    #如果文件连接到一个终端设备返回 True,否则返回 False
f.flush()   #将缓存内容写入硬盘
f.truncate()  #从头开始截断文件

for line in f:print(line)
#将文件一行行读入内存,一次只在内存中保存一行with open("文件名","模式") as f:
#为防止打开文件之后忘记关闭,使用该方法在with代码块执行完毕之后自动关闭释放文件资源with open("文件名","模式") as f1,open("文件名","模式") as f2:
#支持对多个文件进行操作

19、字符的编码与转码

encode:编码 decode:转码

GBK-->UTF-8:GBK--decode-->Unicode--encode-->UTF-8

UTF-8-->GBK:UTF-8--decode-->Unicode--encode—>GBK

两个不同编码相互转换都需要经过Unicode。

.decode(原编码)

.encode(转换后编码)

python 3.x默认为UTF-8编码。

在python 3.x中encode,在转码的同时还会把string变成bytes类型,decode在解码的同时还会把bytes变回string。

20、函数

使用函数的意义:

  • 减少重复的代码
  • 保持一致性,使代码更容易修改
  • 使程序更容易扩展
def 函数名(形参):'''文档描述'''代码块return #返回执行结果,可返回多个值,默认返回None
#定义一个函数

位置参数,关键字参数,默认参数,e.g:

def test(x,y):print(x)print(y)return
test(1,2)
#位置参数,将函数所获得的参数按照一一对应的位置传入,输出结果为
1
2def test(x,y):print(x)print(y)return
test(x=1,y=2)
#关键字参数,按照关键字将值传入,输出结果为
1
2def test(x,y):print(x)print(y)return
test(1,y=2)
#位置参数与关键字参数一起使用,注意:关键字参数不能放在位置参数之前,输出结果为
1
2def test(x,y,z=3):print(x)print(y)print(z)return
test(1,y=2)
#默认参数,直接在定义函数的时候赋值,可以在调用函数的时候修改,输出结果为
1
2
3

非固定参数

def test(*args):print(args)return
test(1,2)
test(1,2,3)
test(*[1,2,3,4])
#非固定参数,可以传入不同个数的参数,只能接受位置参数,以元组的方式输出,结果
(1, 2)
(1, 2, 3)
(1, 2, 3, 4)def test(**args):print(args)return
test(x=1,y=2)
test(x=1,y=2,z=3)
#非固定参数,以字典的方式输出,只接受关键字参数,结果
{'x': 1, 'y': 2}
{'x': 1, 'y': 2, 'z': 3}

21、作用域、局部与全局变量

在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。

全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。

当全局变量与局部变量同名时,在定义局部变量的子程序内,局部变量起作用,在其它地方全局变量起作用

22、递归与高阶函数

递归

一个函数在内部调用自身,该函数即为递归函数

特性:

  • 必须有一个明确的结束条件
  • 每次进入更深一层递归时,问题规模相比上次递归都应该有所减少
  • 递归效率不高,递归层次过多会导致栈溢出

高阶函数

变量可以指向函数,函数的参数能够接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数称为高阶函数。e.g:

def add(x,y,f):return f(x)+f(y)
res = add(3,-6,abs)
print(res)
#结果
9

转载于:https://www.cnblogs.com/yanglang/p/7595544.html

【Python】Python学习----第一模块笔记相关推荐

  1. python函数和模块有什么关键特性_Python学习----第一模块笔记(Python基础知识)...

    1.python是什么? python是动态解释型的强类型定义语言. python官方版本的解释器是CPython.该解释器使用C语言开发. 当前主要使用3.x版本的python. 2.第一个pyth ...

  2. python学习第一模块练习

    #!/usr/bin/python# -*- coding:utf-8 -*- ### 第一套题# # 1. 分别解释"=","==","+=&quo ...

  3. python中的log模块笔记

    日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四大组件记录日志 配置logging的几种方式 向日志输出中添 ...

  4. Python入门学习(第一天)

    入门学习第一步: 1.安装python https://www.python.org/downloads/ 2.下载编辑器 推荐PyCharm Edu 3.打开编辑器新建一个python文件 4. 在 ...

  5. 决战Python之巅——第一模块总结

    前言 本篇将对第一模块中的知识点做一个小总结. 知识总结 1.编程语言 编程语言分为三大类: 1.机器语言 2.汇编语言 3.高级语言 其中,机器语言与汇编语言是最底层语言,运行速度快,但开发效率低: ...

  6. python学习 第一模块习题总结

    part1 习题 简述编译型与解释型语言的区别,且分别列出你知道的哪些语言属于编译型,哪些属于解释型? Pyhton 单行注释和多行注释分别用什么? 布尔值分别有什么? 如何查看变量在内存中的地址? ...

  7. python编程学习——第一周

    第一周 python学习笔记和做的一些习题 (python编程快速上手--让繁琐工作自动化) 第一章节 python基础 一些常用的数学操作符总结(优先级从高到低): 操作符 操作 ** 指数 % 取 ...

  8. python爬虫学习第一章

    <!DOCTYPE html> python爬虫第一章 python网络爬虫的学习 什么是网络爬虫 按照特定需求,从互联网中搜索有用信息网页进行过滤,就叫网络爬虫. 网络爬虫算法 当浏览信 ...

  9. Lumerical Python API学习之补充笔记

    一.笔记1 1.1.关于SYS 在导入之前添加 Python代码解释 当我们导入一个模块时: import xxx ,默认情况下python解释器会搜索当前目录.已安装的内置模块和第三方模块. 搜索路 ...

最新文章

  1. NIPS改名被否,而在改名分歧之外我们能做的还有很多
  2. Powershell 音乐播放
  3. 今年天津分数线高考成绩查询2021年,2021年天津高考分数线预测(2021年天津高考录取分数线)2021年天津高考分数会降低吗...
  4. HTML5的Canvas画图模拟太阳系运转
  5. 前端学习(1046):todolist删除数据1
  6. 卡巴斯基安全浏览器_一年三番五次修,卡巴斯基为何依然无法完美修复杀毒软件中的这些洞 (技术详情)?...
  7. 程序设计基础(C语言)
  8. 第二次提交文件 merge上次版本
  9. python期末复习卷_【期末复习卷A】六年级科学上册期末复习试题
  10. 适用于IE浏览器及非IE浏览器的xmlhttp脚本
  11. (安卓)一键锁屏 ---亲测!
  12. 阶段3 2.Spring_08.面向切面编程 AOP_8 spring中的环绕通知
  13. NoSQL 数据库比较
  14. 国外近年智慧出行项目清单
  15. smalltalk五个特性
  16. 爬虫获取的数据和在自己浏览器看到的不一样
  17. dedecms织梦系统安装步骤
  18. linux网卡变成fe80,linux的ifconfig命令出现inet6fe80的解决方案.docx
  19. b站coderwhy老师_购物首页开发
  20. 计算机网络面试《葵花宝典》

热门文章

  1. Java中读取某个目录下的所有文件和文件夹
  2. Apache配置--用户认证(针对目录访问)-update2015-05-02
  3. Windows Service 2008 R2 远程桌面关闭,自动注销的解决方法
  4. C#Winform控件随窗体缩放
  5. ArrayList的序列化
  6. JavaScript语言精粹JSON解析器源码阅读
  7. 转自微信号:测试那点事
  8. Inside C++ object Model--构造函数
  9. Centos 上部署jeecms注意1
  10. oracle创建数据库、表空间、用户并授权