Python基础的重点要点
前言
目前已经刚入学进入到研究生阶段,计算机研究生往往需要通过学习python来对大量实验数据进行处理,目前已经学完python基础,想对一些我个人来看比较容易混淆的知识。
知识点
- python语法的简单使得每次在书写完一句以后不用加上分号
print('hello world!')
- 注释:
-单行注释 #
-多行注释 上下分别三个单引号括起来即可
# 单行注释:#
# 多行注释:
'''
这是三个单引号,这是一个多行注释
多行注释可以换行
不会执行
'''
- 变量: 变量之前无需加上数据类型
name = 'kang'
age = 18
- 查看数据类型:使用type
- isinstance(x, y) 用来比较前后数据类型是否一致
name = 'huangkang'
print(type(name)) # <class 'str'>
a = '小甲鱼'
boolean = isinstance(a, str)
print(boolean) # True
- 查看系统中的关键字
import keyword
print(keyword.kwlist) # ['False', 'None'... ] 不用刻意记
- 输出 print
# 1、最简单形式
print('hello') # hello
print(123) # 123
# 2、输出可以同时输出不同类型数据
print('kang', 22) # kang 22
# 3、用变量来进行替代输出
name = 'jingxi'
age = 18
# 注意:下面一句demo中间不需要逗号
print('我今年%d岁' %age) # 我的年龄是18岁
# 4、使用f—string形式
print(f"我的名字是{name},今年{age}岁") # 我的名字是jingxi,今年18岁
# 5、格式化字符串format方法
# 形式一:单个占位符,不指定位置
print("我今年{}岁".format(18)) # 我今年18岁
# 形式二:多个占位符,不指定位置
print("我叫{}, 今年{}岁".format('kang', 18)) # 我叫kang, 今年18岁
# 形式三:多个占位符,指定位置
print("我叫{0}, 今年{1}岁".format('kang', 18)) # 我叫kang, 今年18岁
- 输入 input
password = input('请输入密码:') # 自己在控制台输入 18
print(f'你的密码是{password}') # 你的密码是18
- 强制类型转换
my_str = '10'
num1 = int(my_str)
print(type(my_str)) # <class 'str'>
print(type(num1)) # <class 'int'>
其他在进行强制类型转换如上
- 小tips:想要敲击出空格效果,需在引号里面进行; * 有时可以作为简单循环
print('well water' + ' river') # well water river
print('I love kobe \n' * 8) # 出现8行 ; \n 实现的是换行
- BIF: Built-In-Function:内置函数:方便程序员进行快速的编写函数(有点印象即可)
- 字符串进行相加执行的是拼接操作`
print('5' + '8') # 结果是'58'
- 转义:1、使用斜杠 \ 来进行 2、使用英文字母r来进行简单转义
# 1、比如说我们要进行文件路径的读取
str1 = 'c:\\kebi'
print(str1) # c:\kebi
# 2、使用英文字母r来进行转义
str2 = r'c:\kang'
print(str2) # c:\kang
- python当中的条件判断语句 if - else 等,python当中常用缩进来表示
if guess == 8:
print("你就是科比!")
else:
print("你就是詹姆斯!")
- while语句使用,关键字:缩进、冒号
temp = input("请你输入一个数:")
guess = int(temp) # 强制类型转换
# while后其实是一个判断语句
while guess != secret:
temp = input("哎呀,输错了,请重新进行输入:")
guess = int(temp)
if guess == secret:
print("你就是科比!")
else:
...
- 运算符的运算优先顺序大于逻辑运算优先顺序
- !!!当不清楚优先级的时候使用括号来指明优先级
str = (3 > 2) and (5 > 4)
print(str) # True
- e记法:当表示的数字有很多0的时候可以使用
a = 0.00000000000000000000000000078
print(a) # 7.8e-28
b = 1.8e10
print(b) # 18000000000.0
- 在pycharm控制台中可以使用Python Console对一些简单的式子操作
- Python当中用elif来表示else-if操作
score = int(input("请输入一个分数:"))
if 100 >= score >= 90:
print('A')
elif 90 > score >= 80:
print('B')
elif 80 > score >= 60:
print('C')
elif 60 > score >= 0:
print('D')
else:
print("输入错误!")
- for循环
- 语法:for 目标 in 表达式:
循环体
favorite = 'huangkang'
for i in favorite:
print(i, end = ' ') # end = 右边 表示以什么结束,此处以空格结束
print() # h u a n g k a n g
- range(start, stop, step) — 分别对应 最小、最大、步长,最后一个取不到
- ()可以只取一个值,默认从0开始,步长为1
- 通过range返回的是一个可迭代的对象,可以list(range()) 转换成列表
print(list(range(5))) # [0, 1, 2, 3, 4]
# 因为range生成的是一个可迭代对象,可使用在for循环当中
for i in range(2, 9):
print(i, end = ' ') # 2 3 4 5 6 7 8
- 数组:只能够存放相同类型的数组
- 列表:一个打了激素的数组,什么东西都可以存放进去
- 对列表操作的几种方法 append、pop、insert …
- 还有比较重要的切片操作,在numpy中也会强调
# 数组
member = ['kang', 'xiao', 'lihaiyun']
print(member)
# 列表:也是使用[] 进行存取
mix = [1, '小甲鱼', 3.14, [1, 3, 4]] # 列表里面数据类型更加丰富
print(mix) # [1, '小甲鱼', 3.14, [1, 3, 4]]
# 对数组操作的几种方法
# 1、向列表中添加元素 append,默认添加在最后一行
member.append('bigbang') # ['kang', 'xiao', 'lihaiyun', 'bigbang']
# 2、extend -- 可以理解为一种扩张,可以直接加上一个数组
member.extend(['naza', 'wangping']) # ['kang', 'xiao', 'lihaiyun', 'bigbang', 'naza', 'wangping']
# 3、insert(参数1, 参数2), 1:想要插入的位置, 2,插入什么
member.insert(0, '牡丹') # ['牡丹', 'kang', 'xiao', 'lihaiyun', 'bigbang', 'naza', 'wangping']
# 4、remove:从列表中移除元素
member.remove('bigbang') # ['牡丹', 'kang', 'xiao', 'lihaiyun', 'naza', 'wangping']
# 5、列表是特殊的数组,对于里面元素的定位可以直接使用[数组下标形式] del删除
del member[1] # ['牡丹', 'xiao', 'lihaiyun', 'naza', 'wangping']
# 6、pop把栈顶元素删除,类似于数据结构,把列表最后一个元素弹出
member.pop() # ['牡丹', 'xiao', 'lihaiyun', 'naza']
# 7、切片
print(member[1:3]) # ['xiao', 'lihaiyun'],从0开始,最后一个数字是到不了的
# 切片中有些内容是可以省略的
print(member[:3]) # 前面没写或者后面没写就是从头开始/到最后, 后面numpy中会详细
- 对队列里面全是数字的数组进行操作
- 两个队列进行相加的时是合并操作
list = [4, 3, 5, 6, 2, 9]
list.sort() # [2, 3, 4, 5, 6, 9] 默认顺序
# 逆序
list.sort(reverse = True) # [9, 6, 5, 4, 3, 2]
# 两个队列合并
list1 = [1, 2, 3, 5, 6]
list2 = [5, 2, 3, 5, 6]
print(list1 + list2) # [1, 2, 3, 5, 6, 5, 2, 3, 5, 6]
- 元组:带上了枷锁的列表–元组中的元素是不支持修改的,其他和列表的操作相同
tup1 = (12, 13)
tup1[0] = 14
print(tup1) # 报错
- 字符串
# 1、对字符串进行切片的操作
str1 = 'I love huangkang'
print(str1[:6]) # I love 空格也算一个占位
# 1、Capitalize() 将字符串第一个字符进行大写
str2 = 'xiaoxie'
print(str2.capitalize()) # Xiaoxie
# 2、casefold() 将字符串全部变成小写的
str3 = 'KKang'
print(str3.casefold()) # kkang
# count():某一个字符出现的次数
print(str3.count('K')) # 2
# 3、join(sub):以字符串作为分隔符,插入到sub中的所有的字符之间。
str4 = str3.join('12345')
print(str4) # 1KKang2KKang3KKang4KKang5
- 函数
# 函数创建关键字def 后面加上相应函数名
# 格式 冒号是函数的执行体
def MyFirstFunction():
print('这是我创建的第一个函数!')
# 直接调用名字,如果有参数就在括号内加上相应参数即可
MyFirstFunction()
# 函数的参数:就是让函数变得更加的好 有了参数就使得函数比较的多变
def MySecondFunction(name):
print(name + '我爱你')
MySecondFunction('kk') # kk我爱你
# 多个参数时逗号隔开
def add(num1, num2):
result = num1 + num2
print(result)
add(12, 19) # 31
# 使用return的时候,要想在控制台看到结果需要使用print
def add1(num3, num4):
return num3 + num4
print(add1(12, 19)) # 31
# 可变参数, 带有*号表示可变参数
def test(*params):
print('参数的长度是:' , len(params))
print('第二个参数是:' , params[1]) # 下标默认是从0开始的
test(1 , '小甲鱼' , 3.14 , 4, 5, 6, 7) # 参数的长度是: 7 第二个参数是: 小甲鱼
- 内嵌函数和闭包,global、nonlocal关键字
# global关键字
count = 5
def MyFunction():
global count
count = 10
print(10) # 10
MyFunction()
# 局部变量的修改不会影响全局变量的值 但是加上关键字global就会
print(count) # 10
# nonlocal关键字:适用于嵌套函数中内部函数修改外部变量的值
def fun1():
x = 4
def fun2():
nonlocal x
x *= x
return x
return fun2()
print(fun1()) # 16
# 内嵌函数: 函数内部继续嵌套函数
def fun1():
print('fun1()正在被执行')
def fun2():
print('fun2()正在被执行')
fun2()
fun1() # fun1()正在被执行 fun2()正在被执行
fun2() # 报错,内嵌函数在调用时,只能在定义函数内部调用,不能全局调用
# python当中可以理解所有的东西都是对象 !
def FunX(x):
def FunY(y):
return x * y
return FunY
# 闭包调用方式一
i = FunX(8)
print(type(i)) # <class 'function'> 很明显i就是function是一个方法对象
print(i(5)) # 40 进行连续的调用就是得到相应的结果
# 闭包调用方式二
print(FunX(8)(5)) # 40
总结
python基础语法写起来较为简洁,可以自己在b站上面进行查看相关资料,后续有不懂的会补充。有问题希望指出。
研究生阶段我还需要使用python当中的matplotlib来做仿真,之后加上这方面和numpy方面的知识。