Python数据分析前奏—基础语法

💖本文收录于【Python数据分析三大库:numpy、pandas、matplotlib】专栏,此专栏主要记录我在B站学习Python数据分析三剑客—numpy、pandas、matplotlib的学习笔记,对于入门数据分析或者着手python数学建模的小白来说特别友好,欢迎订阅!
🌻个人主页:Glion的职场晋升成长之路
📑个人介绍:保研到某985高校,硕士在读中,将在努力成为数据科学家的道路上不断深耕!

📌 0. 赋值

  • Python使用变量名=表达式的方式对变量进行赋值
a=1
a
1
s='hello world'
s
'hello world'

🎅 1.注释

🎄1.1单行注释

  • 以#开头,#右边的所有文字为代码的注释,起辅助说明的作用,而不是真正要执行的程序。
# 我是注释,这是我选的Python编辑的哦
print('hello world')

🎃1.2多行注释

'''
	我是多行注释,可以写很多很多的功能说明
	注释1
	注释2
'''
print('hello world')

🎵2.变量的类型

  • 程序是用来处理数据的,而变量就是用来存储数据的。
  • 程序中:为了更充分的利用内存空间以及更有效的管理内存,变量有不同类型。
  • 可变对象可以对其进行插入,删除等操作,不可变对象不可以对其进行有改变的操作。Python中 列表,字典,集合等都是可变的,元组,字符串,整型等都是不可变的。
变量类型
Numbers
1.int 整数型 2.long 长整型 3.float 浮点型 4.complex 复数
布尔类型
1.True 2.False
String 字符串
List 列表
Tuple 元组
Dictionary 字典

🎼2.1 字符串str

  • 字符串的定义是使用引号来定义,单引号和双引号是等价的,三引号用来输入包括多行的字符串:
s = '''
hello,
beautiful
girl'''
print(s)
hello,
beautiful
girl

(1)字符串的加法:把各个字符串连接起来

s='hello'+'world'
s
'helloworld'
s='hello'+' world'
s
'hello world'

(2)字符串索引

  • 取出字符串的第0位
#取出字符串中的第0位如下
s[0]
'h'
  • 取出字符串中的第0-4位
s[0:5]
'hello'

(3)字符串的分割

  • 将字符串按照空格进行分割,split()函数括号里面不放任何东西
s='hello,,。world'
s.split(',,')
['hello', '。world']
  • 若字符串需要按照其他符号或内容分割,则split()函数括号里为其他符号或内容

(4)查看字符串的长度

  • 用len() 函数来查看,注意s是最后出现的字符串,若s是None空值则len(s)为0,
len(s)
13

(5)查看变量的类型

  • 在python中,你只要定义了一个变量,而且它有数据,那么它的类型就已经确定了,不需要咱们开发者主动的去说明它的类型,系统会自动辨别,所以可以直接使用type(变量的名字),来查看变量的类型
name ="G.lion"
age = 22
height = 104.5
girl = True
print(type(name))
print(type(age))
print(type(height))
print(type(girl))
#运行结果如下:
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

(6)类型转换

  • 浮点数转换为整数
int(3.14)
3
  • 整数转换为浮点数
float(2)
2.0

🎷2.2 列表list

  • Python用中括号[]来生成列表,也可以用list关键字生成列表
c=[1,2,3,4,5]
c
[1, 2, 3, 4, 5]
actors=['周迅','张杰','赵丽颖']
actors
['周迅', '张杰', '赵丽颖']
d=[1,2.3,'赵丽颖','易烊千玺']
d
[1, 2.3, '赵丽颖', '易烊千玺']
list('赵丽颖易烊千玺')
['赵', '丽', '颖', '易', '烊', '千', '玺']
  • 列表操作:多个列表合并、在列表最后添加元素、在列表具体位置插入元素、删除列表某位置的元素、列表切片(截取列表中的一段)
  • 将上面的c、d列表合并为一个列表:c+d
c+d
[1, 2, 3, 4, 5, 1, 2.3, '赵丽颖', '易烊千玺']
  • 列表.append()表示在列表最后加元素
c.append(6)
c
[1, 2, 3, 4, 5, 6]
  • 列表.insert(位置,'元素') ,在c列表中的第1位插入MOM这个元素
c.insert(1,'MOM')
c
[1, 'MOM', 2, 3, 4, 5, 6]
  • 列表.pop(位置)表示删除某位置上的元素,若不写则默认为删最后一位
c.pop()
6
d.pop(0)
d
[2.3, '赵丽颖', '易烊千玺']
  • 列表切片:列表[a:b] 表示取出列表位置开区间[a:b),即取出的是a到b-1位置上的元素;若不写a,默认为从位置0开始取;若不写b,默认为可以取到列表的最后一位数字
a=[3,4,5,6,7]
a[0:3]
[3, 4, 5]
a[:3]
[3, 4, 5]
a[0:]
[3, 4, 5, 6, 7]
a[0:-2] #新列表取到最后一位的前两个数字为止
[3, 4, 5]
  • 列表间隔取值:b[a:b:i]表示从索引号a到b-1,按照步长为i进行提取 上面就表示从3到9中按照步长3(两数索引号之差为3)来取;若i为负数时,表示从后面往前面来取。
b=[1,2,3,4,5,6,7,8,9,10]
b[2:9:3]
[3, 6, 9]
b[9:2:-2]
[10, 8, 6, 4]
  • 列表生成式即list comprehensions,是Python内置的非常简单强大的可以用来创建list的生成式。
  • #range(1,11)左闭右开,从数字1取到数字10
list(range(1,11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  • 生成1-9平方的列表
[x**2 for x in range(1,10)]  #1^2=1,2^2=4.......9^2=81
[1, 4, 9, 16, 25, 36, 49, 64, 81]
  • 生成1-99能被10整除的列表
[i for i in range(1,100) if i%10==0]
[10, 20, 30, 40, 50, 60, 70, 80, 90]
  • 生成1-9的字符串
[str(x) for x in range(1,10)]
['1', '2', '3', '4', '5', '6', '7', '8', '9']
  • 生成1-9的整数
[int(x) for x in list('123456789')]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

🎸2.3 元组tuple

元组tuple,用()表示,tuple和list非常相似,但是tuple一旦初始化就不能修改,可以把它看成是一个常量

a=(7,8,9)
a
(7, 8, 9)
a.pop() #会出现报错是因为元组相当于常量无法进行删减,列表才可以删减
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-48-9c070c907602> in <module>
----> 1 a.pop()

AttributeError: 'tuple' object has no attribute 'pop'

🎶2.4 字典dict

Python用{key:value}来生成Dictionary

字典中的数据可以是任何数据类型,也可以是字典

mv={'name':'肖胜克的救赎','actor':'罗宾斯','score':'9.6','country':'USA'}
mv
{'name': '肖胜克的救赎', 'actor': '罗宾斯', 'score': '9.6', 'country': 'USA'}
  • 取出key对应的value
mv['name']
'肖胜克的救赎'
  • 查看所有的关键词:字典名.keys()
mv.keys()
dict_keys(['name', 'actor', 'score', 'country'])
  • 查看所有的键值:字典名.values()
mv.values()
dict_values(['肖胜克的救赎', '罗宾斯', '9.6', 'USA'])
  • 查看所有的键值对:字典名.items()
mv.items()
dict_items([('name', '肖胜克的救赎'), ('actor', '罗宾斯'), ('score', '9.6'), ('country', 'USA')])
  • 更改字典中的键值
mv['name']='傲慢与偏见'
mv
{'name': '傲慢与偏见', 'actor': '罗宾斯', 'score': '9.6', 'country': 'USA'}
  • 增加字典中的属性:字典名['new关键词'] ='new 元素' (在mv中增加了导演这一属性)
mv['director']='G.lion'
mv
{'name': '傲慢与偏见',
 'actor': '罗宾斯',
 'score': '9.6',
 'country': 'USA',
 'director': 'G.lion'}
  • 删除字典中的某属性
mv.pop('director')
mv
{'name': '肖胜克的救赎', 'actor': '罗宾斯', 'score': '9.6', 'country': 'USA'}

🎻2.5 集合set

  • Python用{}来生成集合,集合中不含有相同的元素
s={2,3,4,2}
s
{2, 3, 4}
len(s)
3
  • 在集合中增加一个元素:集合名.add(new元素) , 注意,add()里面也只能加一个元素
s.add(9)
s.add(1)
s
{1, 2, 3, 4, 9}
  • 集合取交集
s1={2,3,5,6}
s&s1
{2, 3}
  • 集合取并集
s|s1
{1, 2, 3, 4, 5, 6, 9}
  • 集合作差,表示属于s{1,2,3,4,9}但是不属于s1{2,3,5,6}的元素
s-s1
{1, 4, 9}

📁3. 判断与循环

  • 可以用if语句来判断是否正确,只有为True才可以执行命令
a=1 
b=2
if a>b:
    print('a>b')
else:
    print('a<=b')
a<=b
  • elif 一般出现在判断x范围在2个分类以上,x==0表示一个关系上的判断,若为true就执行,否则再看else
x=0
if x>0:
    print('x为正')
elif x==0:
    print('x为0')
else:
    print('x为负')
x为0

i遍历列表中的每一个元素

i=1
while i<10:
    print(i)
    i=i+1 
1
2
3
4
5
6
7
8
9
for i in [1,2,3,4,5,6,7,8,9]:
    if i<10:
        print(i)
1
2
3
4
5
6
7
8
9
for i in [1,2,3,4,5,6,7,8,9,10]:
    if i%2==1:
        print(i)
1
3
5
7
9

📜4. Python函数

📒4.1内置函数

abs(-2) #取绝对值
2
a=[2,3,1,-4,12,6]
max(a)
12
min(a)
-4
sum(a)
20

📖4.2 自定义函数

  • 函数function,通常接受输入参数,并有返回值。 它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。

  • 函数通常有的特征: 使用def关键词来定义一个函数 ,def后面是函数的名称,括号中是函数的参数,不同参数用逗号隔开,def 函数名()的形式是必须要有的,参数可以为空; 使用缩进来划分函数的内容; return返回特定的值,如果省略,返回None

def add(x,y):
    a=x+y
    return a
add(3,9)
12
print(add(2,5))
7

#下面3个说明不同类型不能相加,整数型与字符型相加报错,此外,输入参数与实际不对,例如定义2个参数输入3个则会报错

print(add(2,'a'))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-115-7eaa4cbe7620> in <module>
----> 1 print(add(2,'a'))

<ipython-input-113-d0439fc1575a> in add(x, y)
      1 def add(x,y):
----> 2     a=x+y
      3     return a
      4 add(3,9)

TypeError: unsupported operand type(s) for +: 'int' and 'str'
print(add('a','b'))
ab
print(add('a','b','c'))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-121-25e1bd80b18f> in <module>
----> 1 print(add('a','b','c'))

TypeError: add() takes 2 positional arguments but 3 were given
  • 返回一个多项式
def fune(x,a=1,b=0,c=0):
    return a*x**2+b*x+c
fune(10)
100
  • 一个函数也可以返回多个返回值
def f(x):
    return x**2,x**3
    f(2)
(4, 8)

🎨5. 标识符和关键字

  • 什么是标识符
  • 开发人员在程序中自定义的一些符号和名称
  • 标识符也可以是自己定义的,如变量名。函数名等
  • 标识符是由字母、下划线和数字组成,且数字不能开头
  • 命名方法
    • 见名知意
    • 驼峰命名法
      • 小驼峰式命名法(lower camel case):第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog
      • 大驼峰式命名法(upper camel case):每一个单词的首字母都采用大写字母,例如:FirstName、 LastName
      • 还有一种命名法是用下划线“_”来连接所有的单词,比如:send_buf
  • 什么是关键字?
  • python一些具有特殊功能的标识符,这就是所谓的关键字
  • 关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符。
  • 常见的关键字:
and	   as    assert  break  class   continue  def   del
elif   else  except  exec  finally   for    from  global
if     in    import   is    lambda   not     or    pass
print  raise return  try    while    with    yield

🎯6.输出

  • 1️⃣python中变量的输出
#打印输出
print('hello world')
print('你好')
  • 2️⃣格式化输出
print("我今年22岁")
print("我今年23岁")
print("我今年24岁")
  • 通过字符串格式化可以简化上面的程序:
age = 22
print("我今年%d岁" % age)
age += 1
print("我今年%d岁" % age)
age += 1
print("我今年%d岁" % age)
  • 在程序中,看到了%这样的操作符,这就是Python中格式化输出。
age = 22
name = "小红"
print("我的名字是%s, 年龄是%d" % (name, age))
我的姓名是小红, 年龄是22
  • 3️⃣常用的格式符号
格式符号转换
%c字符
%s字符串
%d有符号十进制整数
%u无字符十进制整数
%o八进制整数
%x十六进制整数
%f浮点数
%e科学计数法(小写‘e’)
%E科学计数法(大写‘E’)
%g%f和%e的简写
%G%f和%E的简写
  • 4️⃣换行输出
  • 在输出的时候,如果有\n,则\n后面的内容会在另一行显示
print("好好学习") #会在一行显示
print("天\n天\n向\n上") #会在不同行显示
好好学习
天
天
向
上

⛪ 7. 输入

  • 在python3中,用input()函数
a = int(input("请输入密码"))
print(type(a))
请输入密码19990730
<class 'int'>

🌈 8.运算符

🌺 8.1 算术运算符

  • 下面以a=10,b=20为例进行计算
运算符描述实例
+两个对象相加,a + b输出结果为30
-两个对象相减,a - b输出结果为-10
*两个对象相乘,a*b输出结果为200
/b/a 输出结果为2
//取整数返回除法的整数,例如9 // 2输出结果为4,9.0 // 2.0输出结果为4.0
%取余返回除法的余数,例如9 // 2输出结果为1,9.0 % 2.0输出结果为1.0
**指数a**b表示a的b次方,例如a =2,b =10输出结果为1024
  • 注意:混合运算时,优先级顺序为指数>乘、除、取整数、取余数>加减,为了避免歧义,建议使用()来处理运算符优先级。
  • 若不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算

🌼8.2赋值运算符

运算符实例
=把=右边的结果赋值给左边的变量,如 num=1 + 2*3,num的输出结果为7
# 多个变量赋值
num1, num2, f1, str1=100, 200, 3.14 ,'hello'
print(num1)
print(num2)
print(f1)
print(str1)
100
200
3.14
hello

🌾8.3复合赋值运算符

运算符描述实例
+=加法赋值运算符c += a 相当于 c = c + a
-=减法赋值运算符c -= a 相当于 c = c - a
*=乘法赋值运算符c *= a 相当于 c = c * a
/=除法赋值运算符c /= a 相当于 c = c / a
%=取模赋值运算符c %= a 相当于 c = c % a
**=幂赋值运算符c **= a 相当于 c = c ** a
//=取整除赋值运算符c //= a 相当于 c = c // a

💹8.4 逻辑运算

a=True
b=False    
a&b #and,都为真才为真
False
a=3>2
b=1>2
a|b #or,一个为真则为真
True
not a #表示取反
False

🍄9.数据类型转换

  • 常用的数据类型转换
函数说明
int(x[,base])将 x(通常是一个字符串)按照base进制转换成整数 ,不写默认为十进制
float(x)将 x 转换为一个浮点数
complex(real [,imag])创建一个复数,real为实部,imag为虚部
str(x)将对象 x 转换为字符串
repr(x)将对象 x 转换为表达式字符串,x =“love”,str(x)输出为’love’,repr(x)输出为"’love’"
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
chr(x)将一个整数转换为一个Unicode字符
ord(x)将一个字符转换为它的ASCII整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
bin(x)将一个整数转换为一个二进制字符串
  • 举例
# int():将数据转换为int类型,如果是浮点数,只留下整数部分舍弃小数部分(但并不是按照四舍五入)
str1 = "10"
num1 = int(str1)
num2 = int(3.14)
print(num1)
print(num2)

# hex():将一个整数转换为十六进制
print(hex(1024)) # 0x 开头表示十六进制

#eval(): 将字符串形式的数据,转换为数据类型
str1 = "3.14"
print(type(eval(str1)))

#complex(): 创建复数:第一个参数是复数的实部,第二个参数是复数的虚部
c1 = 10 + 4j
c2 = complex(2,5)
print(c1)
print(c2)
10
3
0x400
<class 'float'>
(10+4j)
(2+5j)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值