Python【系列教程】之基础学习笔记
一、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")
-
<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|用户年龄|8
-
40 60
(3)python的关键字和内置函数
False | None | True | and | as |
assert | break | class | continue | def |
del | elif | else | except | finally |
for | from | global | if | import |
in | is | lambda | nonlocal | not |
or | pass | reise | return | try |
while | with | yield |
使用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的内置函数
abs() | all() | any() | basestring() |
bin() |
bool() |
bytearray() | callable() | chr() | classmethod() |
cmp() | compile() | complex() | delattr() | dict() |
dir() | divmod() | enumerate() |
eval() | execfile() |
file() | filter() | float() | format() | frozenset() |
getattr() | globals() | hasattr() | hash() | help() |
hex() | id() | input() | int() | isinstance() |
issubclass() |
iter() | len() | list() | locals() |
long() | map() | max() | memoryview() | min() |
next() | object() |
oct() |
open() |
ord() |
pow() |
print() |
property() |
range() |
raw_input() |
reduce() |
reload() | repr() | reversed() |
zip() |
round() | set() | setattr() | slice() | sorted() |
staticmethod() |
str() |
sum() |
super() |
tuple() |
type() | unichr() |
unicode() | vars() | xrange() |
Zip() | __import__ () |
apply() | buffer() | coerce() |
intern |
以上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 值的类型是: <class 'str'>
-
-
请输入你的值:1.2
-
您输入得值是: 1.2 值的类型是: <class 'str'>
-
-
请输入你的值:Hello
-
您输入得值是: Hello 值的类型是: <class 'str'>
(9)长字符串
-
myPhone = """这是一个长字符串"""
-
print(myPhone)
-
-
myPhone ="这是一个" \
-
"长字符串"
-
print(myPhone)
-
-
num = 20+3/4+ \
-
2*3
-
print(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
-
#创建一个空的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 |
转换为带符号的十进制形式的整数 |
o | 转换为带符号的八进制形式的整数 |
x |
转换为带符号的十六进制形式的整数 |
X |
转换为带符号的十六进制形式的整数 |
e | 转化为科学计数法表示 的浮点数( e小写) |
E | 转化为科学计数法表示 的浮点数( E大写) |
f,F | 转化为十进制形式的浮点数 |
g |
智能选择使用 f或者e格式 |
G | 智能选择使用 f或者e格式 |
C | 转换为单字符(只接受整数或者单字符字符串) |
r | 使用repr()将变量或者表达式转换为字符串 |
s | 使用str () 将变量或者表达式转换为字符串 |
(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))
-
#方法二
-
str_new = string[:int(index)] + repStr + string[int(index)+1:]
-
print(str_new)
请输入字符串:ab.ccc
请输入子串:3 p
ab.pcc
ab.pcc
文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_31905135/article/details/99731430
- 点赞
- 收藏
- 关注作者
评论(0)