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的关键字和内置函数                                        

FalseNoneTrueandas
assertbreakclasscontinuedef
delelifelseexceptfinally
forfromglobalifimport
inislambdanonlocalnot
orpassreisereturntry
whilewithyield  

 使用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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小米吃辣椒2022

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值