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

网友投稿 526 2022-05-29

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

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

(2)配置环境变量

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

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

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

C:\Users\段朝旭>python

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32

Type "help", "copyright", "credits" or "license" for more information.

输入以下代码进行测试

>>>  print("hello world")

hello world

>>> 1 + 2

3

>>> 5.3 + 2.3

7.6

>>> 1.3-2.4

-1.0999999999999999

>>> 1.3 * 2

2.6

>>> 3.5 / 3

1.1666666666666667

>>> 3.5 // 3

1.0

>>> 3.5 ** 2

12.25

>>> 5 ** 3

125

>>> 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")

>>> type(1)

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|用户年龄|8

40 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的内置函数

basestring()

bin()

bool()

enumerate()

execfile()

isinstance()

issubclass()

object()

oct()

open()

ord()

pow()

print()

property()

range()

raw_input()

reduce()

reversed()

staticmethod()

str()

sum()

super()

unichr()

__import__ ()

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

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

十进制形式 最普通的整数就是十进制形式的整数

二进制形式:以 Ob OB 开头的整数就是 进制形式的整数

八进制形式:以Oo或00 开头的整数就是八进制形式的整数(第 二个字母是大写或小写的O)

十六进制形式:以 Ox或 ox 开头 整数就是十六进制形式的整数,其中 10 ~15 分别以a~f(此处的a~f不区分大小写)来表示

>>> 0x13

19

>>> 0XaF

175

>>> 0b111

7

>>> 0B101

5

>>> 0o54

44

>>> 0O17

15

(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 值的类型是:

请输入你的值:1.2

您输入得值是: 1.2 值的类型是:

请输入你的值:Hello

您输入得值是: Hello 值的类型是:

(9)长字符串

myPhone = """这是一个长字符串"""

print(myPhone)

myPhone ="这是一个" \

"长字符串"

print(myPhone)

num = 20+3/4+ \

2*3

print(num)

(10)原始字符串

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

url = "D:\sadasda\asdsadasd"

url = r"D:\sadasda\asdsadasd";

print(url)

(11) 字节串bytes

#创建一个空的bytes

bttes1 = bytes()

print(bttes1)

#创建一个空的bytes

bttes2 = 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" % ("我","是一个粉刷匠"))

转换说明符

d, i

转换为带符号的十进制形式的整数

转换为带符号的八进制形式的整数

x

X

转化为科学计数法表示 的浮点数( e小写)

转化为科学计数法表示 的浮点数( E大写)

g

智能选择使用 f或者e格式

智能选择使用 f或者e格式

转换为单字符(只接受整数或者单字符字符串)

(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"))

#查找指定子串在字符串中出现的位置,如果没有找到指定子串 ,则返回-1

print(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 = "my.org 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 = 20

print(a, b, c)

x = - 5.0

x = -x

print(x)

y = -5.0

y = +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) # 25

print('4的3次方', 3) # 64

print('4的开平方:', 4 ** 0.5) # 2.0

print('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 1

1 1 0

~ : 按位取反。(0变成1,1变成0)

0 0

1 1

<<: 左位移运算符:左移运算符是将操作数的二进制码整体左移指定位数,左移后右边空出来的位以0来填充

0010101 << 2

1010100

>>: 右位移运算符: Python 右移运算符为 >>。对于“>>”运算符而言,把第一个操作数的二进制右移指定

位数后,左边空出来的位以原来的符号位来填充。即 :如果第一个操作数原来是正数,则 左边补 0;

如果第一个操作数是负数,则 边补 o

1010011 >>2

1010000

必须指出的是,位移运算符只适合对整型数进行运算

"""

a = 'abcdefghijklmn'

# 获取索引2到索引8的子串,步长为3

print(a[2:8:3]) # 输出cf

# 获取索引2到索引8的子串,步长为2

print(a[2:8:2]) # 输出ceg

a = 3

b = 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 time

a = time.time()

b = time.time()

print(a == b) # 输出True

print(a is b) # 输出False

# 逻辑运算符 and or not

a = "book"

if a.startswith("b") and len(a) > 2:

print(True)

else:

print(False)

a = 75

b = 60

st = a if a > b else b

print(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 = 0

subLen = len(sub_string)

print(range(len(string) - 1))

for i in range(len(string) - 1):

if string[i:i + subLen] == sub_string:

count += 1

print("子串出现的次数是 %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))

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

#方法二

str_new = string[:int(index)] + repStr + string[int(index)+1:]

print(str_new)

请输入字符串:ab.ccc

请输入子串:3 p

ab.pcc

ab.pcc

Python

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【王喆-推荐系统】特征工程篇-(task2)用Spark进行特征处理
下一篇:ModelArts(一)——从快速入门到远程开发丨【华为云AI贺新年】
相关文章