900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Python【系列教程】之基础学习笔记

Python【系列教程】之基础学习笔记

时间:2019-09-11 12:17:27

相关推荐

Python【系列教程】之基础学习笔记

一、python安装及第一个python程序

(1)官网下载最新版的python 64位安装包并进行安装

(2)配置环境变量

在安装的时候,直接勾选Add Python 3.7 to Path,单击Customize installation可以在安装时指定自定义的安装路径 单击该选项即

可开始安装。在接下来 安装界面中只 改变 Python 安装路径(建议安装在指定盘符的根路径下 ,比如安装在 D:\Python\目录下), 其他地方使用默认选项即可。

安装完成之后,打开cmd 面板,输入python 看到如下输出说明安装成功!

C:\Users\段朝旭>pythonPython 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 , 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32Type "help", "copyright", "credits" or "license" for more information.

输入以下代码进行测试

>>> print("hello world")hello world>>> 1 + 23>>> 5.3 + 2.37.6>>> 1.3-2.4-1.0999999999999999>>> 1.3 * 22.6>>> 3.5 / 31.1666666666666667>>> 3.5 // 31.0>>> 3.5 ** 212.25>>> 5 ** 3125>>> import math>>> math.sin(1.57)0.9999996829318346>>> math.cos(0.78)0.7109135380122773>>> math.tan(math.pi / 4)0.9999999999999999

二、python基础知识

(1)单行注释和多行注释

# 代表单行注释#print("hello,world")"""代表多行注释"""this is a duo hang de zhu shi"""

(2)变量

Python 是弱类型语言,弱类型语言有两个典型特征

变量无须声明即可直接赋值 对一个不存在的变量赋值就相当于定义了一个新变量。 变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为 字符串。

type()函数返回 传入数据的数据类型

>>> type("hello")<class 'str'>>>> type(1)<class 'int'>

print()函数用法

user_name = "Charlie"user_age = 8#打印时默认的间隔符是空格print("用户姓名",user_name,"用户年龄",user_age)#使用sep参数将默认的间隔符修改为|print("用户姓名",user_name,"用户年龄",user_age,sep="|")#print函数默认会换行,因为end参数默认是\n,我们可以指定为空字符串,打印的时候就不会换行了print(40,"\t",end="")print(60,"\t",end="")#可以直接输出内容到一个文件中f=open("D:\\open.txt","w")print("锄禾日当午",file=f)

输出结果:

用户姓名 Charlie 用户年龄 8用户姓名|Charlie|用户年龄|840 60

(3)python的关键字和内置函数

使用keyword 查看 python的关键字

>>> import keyword>>> keyword.kwlist['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

python的内置函数

以上python内置的关键字以及内置的函数不应该作为标识符。

(4)Python 整型数值有4种 表示形式

十进制形式 最普通的整数就是十进制形式的整数二进制形式:以 Ob OB 开头的整数就是 进制形式的整数 八进制形式:以Oo或00 开头的整数就是八进制形式的整数(第 二个字母是大写或小写的O)十六进制形式:以 Ox或ox 开头 整数就是十六进制形式的整数,其中 10 ~15 分别以a~f(此处的a~f不区分大小写)来表示

>>> 0x1319>>> 0XaF175>>> 0b1117>>> 0B1015>>> 0o5444>>> 0O1715

(5)浮点型

浮点型数值用于保存带 数点的数值, python 浮点数有两种表示形式。

十进制形式:这种形式就是平常简单的浮点数,例如 5.12 512 0.512 。浮点数必须包含 一个小数点,否则会被当成整数类型处理。 科学计数形式 例如 5.12e2 (即 5.12 *10^2)、 5.12E2 (也是 5.12*10^2)必须指出的是,只有浮点型数值才可以使用科学计数形式表示。例 51200 个整型值,但

512E2 则是浮点型值.

(6) 复数

导入cmath模块,例如:3 + 0.2j

(7) repr和字符串

sl ”这本书的价格是p = 99.8 #字符串直接拼接数值,程序报错print(sl + p) #使用 str()将数值转换成字符串print(sl + str(p)) #使用 repr()将数值转换成字符串print (sl+repr(p))

str()和repr()函数都可 将数值转换成字符串,其 str 本身是 Python 类型( 和int float 一样〉,而 repr()则 只是 个函数 ,此外, repr 还有 一个功能, 它会以Python 表达式 形式来表示 值。对 比如下两行粗体 码。

st= "i will play my life";

print (st)

print(repr(st))

上面代码中 st 本身就是 个字符串 但程序依然使用了 repr() 对字符串进行转换。运行上面程 序,可以看到如下输出结果。

I will play my fife

’ I will play my fife ’

通过上面的输出结果可以看出,如果直接使用print()函数输出字符串 将只能看到字符串的内容,没有引号,但如果先使用 repr()函数对字符串进行处理,然后再使用print() 执行输出,将可以 看到带引号 字符串一一 就是字 Python的表达式形式。

(8)使用input()函数获取用户输入

python3中input()函数用于向用户生成一条提示,然后获取用户输入的内容,由于input()函数总会将用户输入的内容放入字符串中,因此用户可以输入任何内容,input()函数总是返回一个字符串

msg = input("请输入你的值:")print("您输入得值是:",msg, "值的类型是:",type(msg))请输入你的值:2您输入得值是: 2 值的类型是: <class 'str'>请输入你的值:1.2您输入得值是: 1.2 值的类型是: <class 'str'>请输入你的值:Hello您输入得值是: Hello 值的类型是: <class 'str'>

(9)长字符串

myPhone = """这是一个长字符串"""print(myPhone)myPhone ="这是一个" \"长字符串"print(myPhone)num = 20+3/4+ \2*3print(num)

(10)原始字符串

由于字符串中的反斜线都有特殊的作用,因此当字符串中包含反斜线时,就需要对其进行转义。 比如写一条 Windows 的路径 G:\publish\codes\02\2.4 ,如果在 Python程序中直接这样写肯定 是不行的,需要写成: G:\\publish\codes\\02\\2.4 ,这很烦人,此时可借助于原始字符串来解决这个 问题 ,原始字符串以“r”开头,原始字符串不会把反斜线当成特殊字符。因此,上面的 Windows 路径可直接写成 r' G:\publish\codes\02\2.4

url = "D:\\sadasda\\asdsadasd"url = r"D:\sadasda\asdsadasd";print(url)

(11) 字节串bytes

#创建一个空的bytesbttes1 = bytes()print(bttes1)#创建一个空的bytesbttes2 = b''print(bttes2)#通过前缀指定hello是bytes类型的值b3 = b'hello'print(b3)print(b3[0])print(b3[2:4])# 调用bytes方法将字符串转换成bytes对象b4 = bytes('我爱kxm',encoding='utf-8')print(b4)# 利用字符串的encode()方法编码成bytes,默认使用UTF-8字符集b5 = "我爱kxm".encode('utf-8')print(b5)# 将bytes解码成字符串b5str = b5.decode("utf-8")print(b5str)

(12)字符串格式化

price = 108 print ("the book ’s price is %s" % price)

格式化字符串中的“ %s ”被称为转换说明符(Conversion Specifier),其作用相当于一个占位符,它会被后面的变量或者表达式的值代替。%s指定将变量或值使用 str() 函数转换为字符串。 如果格式 字符串 包含多个“%s”占位符,第三部分也应该对应地提供多个变量,并且使 用圆括号将这些变量括起来。如下代码:

print("the book price is %s %s" % ("我","是一个粉刷匠"))

(13)序列相关方法

# 希望kxm能够快点好起来test = "希望kxm能够快点好起来"# 获取test 从右边开始,索引为4的字符print(test[-4])# 获取test从2开始到结束的字符串print(test[2:])# 获取test 从索引为2到4的字符串print(test[2:4])# 获取test从索引 -6到-3的字符串print(test[-6:-3])# 使用in关键字判断 test 是否包含 very 字符串print('very' in test)print('kxm' in test)# 获取test字符串的长度print(len(test))# 获取test字符串中的最大字符print(max(test))# 获取test字符串中的最小字符print(min(test))

(14)大小写相关方法

dir() :列出指定类或模块包含的全部内容(包括函数、方法、类、变量等)。

help():查看某个函数或方法的帮助文档。

str类中与大小写相关的常用方法如下:

test = " abC jkL"# 将每个单词首字母改为大写print(test.title())# 将整个字符串改为大写print(test.upper())# 将整个字符串改为小写print(test.lower())print(dir(str))print(help(str.lower))# 删除字符串前后的空白print(test.strip())# 删除字符串前面(左边)的空白print(test.lstrip())# 删除字符串后面(右边)的空白print(test.rstrip())#判断字符串是否 以指定子串开头print(test.startswith(" "))print(test.endswith("l"))#查找指定子串在字符串中出现的位置,如果没有找到指定子串 ,则返回-1print(test.find("a"))#查找指定子串在字符串中出现的位置,如果没有找到指定子串 ,则引发 ValueError错误。print(test.index("a"))#使用指定子串替换字符串中的目标子串print(test.replace("jk","mk"))#定义翻译映射表table = {97:945 , 98:946 , 116: 964}print(test.translate(table))"""str的translate()方法需要根据翻译映射表对字符串进行查找、替换。在上面程序中自己定义了一个翻译映射表,这种方式需要开发者能记住所有字符的编码 ,这显然不太可能 为此, Python 为由类提供了一个 maketrans ()方法,通过该方法可以非常方便地创建翻译映射表"""table1 = str.maketrans("ab","OP")print(test.translate(table1))myStr = " is a good site"#使用空白对字符串进行分割print(myStr.split())#使用空白对字符串进行分割,最多只分割前两个单词print(myStr.split(None,2))#使用点进行分割print(myStr.split("."))mylist = myStr.split()#使用 /作为分割符,将 mylist 连接成字符串print("/".join(mylist))#使用 ,作为分割符,将 mylist 连接成字符串print(",".join(mylist))

(15) 运算符

# 连续赋值a = b = c = 20print(a, b, c)x = - 5.0x = -xprint(x)y = -5.0y = +y# n 个字符串拼接起来s3 = 'crazy'print(s3 * 5)"""“/表示普通除法,使用它除出来的结果与平常数学计算的结果是相同的(即除不尽时,会产生小数部分);而“//”表示整除,使用它除出来的结果只有整数部分,小数部分将会被舍弃。"""print(19 / 4)print(19 // 4)"""%:求余运算符 Python要求求余运算符的两个操作数都是整数, Python 的求余运算符完全支持对浮点数求余。求余运算的结果不一定总是整数,它是使用第一个操作数来除以第二个操作数,得到一个整 结果后剩下的值就是余数。"""print(5 % 3)print(5.2 % 3.1)# ** 乘方/ 开方运算print('5的2次方:', 5 ** 2) # 25print('4的3次方', 3) # 64print('4的开平方:', 4 ** 0.5) # 2.0print('27的开3次方', 27 ** (1 / 3)) # 3.0"""& : 按位与 0 0 0 (两个数都是0,所以结果才是0)0 1 0 (两个数只有一个为1,所以结果是0)1 1 1 (两个数结果都是1,所以结果才是1)| :按位或 0 0 0 (两个数都是0,所以结果是0)0 1 1 (两个数只要其中一个是1,结果就是1)1 1 1 (两个数都是1,所以结果是1)^ : 按位异或。 0 0 0 (相同为0,不同为1)0 1 11 1 0~ : 按位取反。(0变成1,1变成0)0 01 1 <<: 左位移运算符:左移运算符是将操作数的二进制码整体左移指定位数,左移后右边空出来的位以0来填充0010101 << 2 1010100>>: 右位移运算符: Python 右移运算符为 >>。对于“>>”运算符而言,把第一个操作数的二进制右移指定位数后,左边空出来的位以原来的符号位来填充。即 :如果第一个操作数原来是正数,则 左边补 0;如果第一个操作数是负数,则 边补 o1010011 >>21010000必须指出的是,位移运算符只适合对整型数进行运算"""a = 'abcdefghijklmn'# 获取索引2到索引8的子串,步长为3print(a[2:8:3]) # 输出cf# 获取索引2到索引8的子串,步长为2print(a[2:8:2]) # 输出cega = 3b = a# 判断两个变量所引用的对象是否相同,print(a is b)# 判断两个变量所引用的对象是否不相同.print(a is not b)# 使用id()获取所引用的对象的内存地址print(id(a))print(id(b))# 布尔值也可以进行运算print(True + False)print(False - True)print(-True)print(-False)# ==只比较两个变量的值,但 is要求两个变量引用同一个对象。import timea = time.time()b = time.time()print(a == b) # 输出Trueprint(a is b) # 输出False# 逻辑运算符 and or nota = "book"if a.startswith("b") and len(a) > 2:print(True)else:print(False)a = 75b = 60st = a if a > b else bprint(st)

小练习:

(1)

num1, num2 = int(input("请输入第一个整数:")), int(input("请输入第二个整数:"))print(num1 // num2)print(num1 / num2)print(num1 + num2)print(num1 - num2)print(num1 * num2)

输出结果:

请输入第一个整数:10

请输入第二个整数:2

5

5.0

12

8

20

(2)

# 打印一个字串在一个字符串中出现的次数string, sub_string = input("请输入字符串:"), input("请输入子串:")count = 0subLen = len(sub_string)print(range(len(string) - 1))for i in range(len(string) - 1):if string[i:i + subLen] == sub_string:count += 1print("子串出现的次数是 %s" % count)

输出结果:

请输入字符串:abcabcabc

请输入子串:ab

range(0, 8)

子串出现的次数是 3

(3)

num1 = int(input("请输入一个整数:"))print("十进制:%d" % num1)print("八进制:%s" % oct(num1))print("十六进制(大写):%s" % hex(num1))print("二进制:%s" % bin(num1))

输出结果:

请输入一个整数:50

十进制:50

八进制:0o62

十六进制(大写):0x32

二进制:0b110010

(4)

string, sub_string = input("请输入字符串:"), input("请输入子串:")list = sub_string.split(" ")index,repStr = list[0],list[1]tem = string[int(index)]#方法一print(string.replace(tem,repStr,1))#方法二str_new = string[:int(index)] + repStr + string[int(index)+1:]print(str_new)

请输入字符串:c

请输入子串:3 p

ab.pcc

ab.pcc

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。