python学习的一些重点总结

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方面的知识。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值