Python入门中的入门

Python基础语法

注释

python中单行注释以#开头,用法类似于:

python 复制代码
#这时一个单行注释,注释的内容不会在编译中执行!

多行注释则可以使用"""''',用法类似于:

python 复制代码
"""
这是一个多行注释
"""
'''
这是另一个多行注释
'''

缩进

python最具特色的东西就是使用缩进表示代码块,而不是使用{}

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,实例如下:

python 复制代码
if a==1:
	print(a)
	print("true")
	print("a是等于1的")

print("GO")

输入与输出

print默认输出是换行的!如果要实现不还行输出要在变量的结尾加上end=""

python 复制代码
#换行输出
x = "a"
print("hh")
print(x)
#不换行输出
print(x,end="")
print("hh",end=" ")

input用于输入,就是用的比较少:

python 复制代码
a = input("hello,what is your name:")

基本数据类型

有四种常用的数据类型:

python 复制代码
counter = 100
#整型变量
miles = 1000.1
#浮点型变量
Var = True
#布尔型变量
name = "RUN"
#字符串
char = 'a'
#字符
m = 1+2j
#复数

注意

  1. python中变量不需要声明,每个变量在使用前必须赋值,赋值后该变量才会被创建
  2. 在python中变量就是变量,它没有类型。我们所说的“类型”是变量所指的内存中对象的类型

数据类型的转换

有时候,我们需要对数据内置的类型进行转换,一般情况下只需要将数据类型作为函数名即可。Python数据类型转换可以分为两种:

  1. 隐式类型转换----自动完成
  2. 显式类型转换----需要使用类型函数来转换

我们可以使用type函数来查看当前变量的数据类型:

python 复制代码
a = 100
print(type(a))

一些数据类型转换的例子:

python 复制代码
a=100
b=100.0
c = a+b
print("c的数据类型",type(c))
#我们会发现a是整数,b是浮点数,c是浮点数,在进行a+b时a中的数据被隐式转换为浮点类型

d = a + int(b)#将b强制类型转换为整型并与a相加
print("d的数据类型",type(d),type(b))#我们会发现d是整型,b依然是浮点型!
#也可以这么干:
f = int(a+b)

i='0'
h = a + int(i)
print(h)#输出结果是100
j = str(a)+i#输出结果为1000

k = "100.5"
l = float(k)+b
print(l)#结果为200.5

字符串的基本操作

字符串是由字符组成的序列, 可以使用单引号或双引号括起来

python 复制代码
name1='Alice'
name2="bill"

字符串中的每个字符都有一个索引,可以使用索引访问特定位置的字符。索引从0开始。例如:

python 复制代码
name = "Alice"
print(name[0])
#得到的结果为A

切片是通过指定起始索引和结束索引来提取字符串。例如:

python 复制代码
print(name[1:3])
#得到的结果为li
#输出的长度是结束的索引 - 开始的索引
#值得注意的是索引可以是负的,索引是正的代表从前往后,负的代表从后往前
print(name[-1])
#得到的结果是e

字符串的拼接: 使用加号(+)可以将两个字符串拼接在一起。例如:

python 复制代码
name = "Alice"
greeting = "Hello"+name

重复输出:

python 复制代码
print("A"*5)
#得到AAAAA

运算符

算术运算符

运算符 描述
+ 两个对象相加
- 得到负数或一个数减去另一个数
* 两个数相乘或返回一个被重复若干次的字符串
/ 两个数相除
% 取模--返回除法的余数
** 幂--返回x的y次幂
// 取整除--往小的方向取整数

比较运算符

运算符 描述
== 比较对象是否相等
!= 比较两个对象是否不相等
> 返回x是否大于y
< 返回x是否小于y
>= 返回x是否大于等于y
<= 返回x是否小于等于y

赋值运算符

运算符 描述
= 最简单的赋值运算符
+= 加法赋值运算符
-= 减法赋值运算符
*= 乘法赋值运算符
/= 除法赋值运算符
%= 取余赋值运算符
**= 幂赋值运算符
//= 取整除赋值运算符

逻辑运算符

逻辑运算符 描述
and 与c语言中的&&类似
or 与c语言中的||类似
not 如果x为true返回false,如果x为false,返回true

成员运算符

成员运算符 描述
in 如果在指定序列中找到值返回true,否则返回false
not in 如果在指定的序列中没有找到值返回True,否则返回false

复合数据类型

序列有三种表现形式:列表,元组和字典

列表

列表是最常用的python数据类型,列表的数据项不需要具有相同类型,创建一个列表,只需要把逗号分隔的不同的数据项使用方括号括起来即可。

python 复制代码
Colors = ['red','green','blue','yellow','white','black']
python 复制代码
#列表的定义
list0 = [1,'2',3.0,True,"大家好"]
print(list0)#可以直接打印出列表中的所有元素
print(list0[1])#结果为2
print(list0[1:4])#结果为2,3.0,True
list0[2]=5.0#将2号位置上的值改为5.0

元组

python的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号();列表使用方括号[ ]

元组的创建:只需要在括号中添加元素并使用逗号隔开。

python 复制代码
Colors = ('red','green','blue','yellow','white','black')
python 复制代码
tuple0 = (1,'2',3.0,True,"大家好")
print(list0)#可以直接打印出元组中的所有元素
print(list0[1])#结果为2
print(list0[1:4])#结果为2,3.0,True,(输出的结果也是一个元组)
list0[2]=5.0#报错,元组的数据项不支持修改!!!!!!

字典

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值key=>value对用冒号:分割,每个对之间用逗号(,)分割,整个字典包括在花括号{ } 中。

python 复制代码
Colors = {'red':'red','green':'green'}
python 复制代码
dict0 = {"第一个元素":1,"第二个元素":'2',"第三个元素":3.0,"第四个元素":True,"第五个元素":"大家好"}
print(dict0)#输出字典中的所有元素
print(dict0["第二个元素"])
#由于字典无法通过索引值来索引所以无法进行切片的操作
dict0["第二个元素"] = 10#修改元素
#如果我们在创建字典时没有规定键值,这时我们会得到:集合(set)
#创建集合:
set0 = {1,'2',3.0,True,"大家好"}
#输出集合
print(set0)
#我们会发现结果中没有True,这时因为在程序中True与1时等价的而集合中不允许出现重复的元素

重复语句与循环语句

if条件语句

格式:

python 复制代码
if condition_1:
	statement_block_1
elif condition_2:
	statement_block_2
else :
	statement_block_3

示例:

python 复制代码
#if条件语句
a = 5
#判断a是整数还是负数:
if a > 0:
	print("a 是正数")
elif a == 0:
	print("a 是0")
else :
	print("a 小于0")

for循环语句

格式:

python 复制代码
#for循环的条件是只要这个变量一直在序列中,就持续执行
for <variable> in <sequence>:
	<statements>
else:
	<statements>

示例:

python 复制代码
#for循环
for i in range(5):
	print(i) #结果是01234

for j in [0,1,2,3,4]:
	print(j) #结果是01234

for k in "hello":
	print(k) #结果是h e l l o

for l in ["red","blue","green","black"]:
	print(l) #结果是 red blue green black

while循环语句

格式:

python 复制代码
while <expr>:
	<statement(s)>
else :
	<additional_statement(s)>

示例:

python 复制代码
#while
num = 0
while num < 100:
	num += 1
	print(num)

函数

定义

  • 函数地区代码块以def开头后接函数标识符名称和圆括号
  • 任何传入的参数和自变量要放在圆括号中间,圆括号之间可以用于定义参数
  • 函数的第一行语句可以选用文档字符串----用于存放函数说明
  • 函数以冒号起始,注意缩进
  • return[表达式]结束函数,选择性的返回一个值给调用方,不带表达式的return相当于返回NONE
python 复制代码
#缺省参数
def multiply(a,b=1):#缺省参数:在没有针对型参b的传参时会使用默认值(1),值得注意的是,缺省的参数后面不能有非缺省的型参,第一个参数不能缺省
	return a*b

文件操作

打开一个文件

  1. python open()方法用于打开一个文件,并返回文件对象
  2. 在对文件处理的过程都会使用到这个函数,如果该文件无法被打开会抛出OSerror
  3. 注意:使用open()方法一定要保证关闭文件对象,即调用close()方法
  4. open()函数常用形式是接受两个参数:文件名(file)和模式(mode)
模式 描述
r 以只读到方式打开文件,文件的指针将会放在文件的开头。这是默认的模式
r+ 打开一个文件用于读写,文件指针将会放在文件的开头
w 打开一个文件只用于写入,如果该文件已存在则打开文件从开头开始编辑,即原有内容会被删除。如果该文件不存在创建新文件
w+ 打开一个文件用于读写,如果该文件已存在则打开文件从开头开始编辑,即原有内容会被删除。如果该文件不存在创建新文件
a 打开一个文件用于追加。如果该文件已存在则文件指针将会放在文件的结尾。也就是说新的内容将会被写入到已有内容之后,如果该文件不存在创建新文件进行写入
... ......

file对象使用open()函数来创建

模式 描述
file.close() 关闭文件,关闭文件后不能再进行读写操作
file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有
file.readline([size]) 读取整行包括“\n”字符
file.readlines([sizeint]) 读取所有行并返回列表,若给定的sizeint>0,返回总和大约为sizeint字节的行,实际的读取值可能比sizeint大,因为需要填充缓冲区
file.write(str) 将字符串写入文件,返回的是写入的字符长度
file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符
python 复制代码
#文件的读取
file_sample = open(file = "sample.txt",mode = "r",encoding="utf-8")#最后一个参数指定了解码的方式,使得这个程序可以正确的解释中文

content = file_sample.readlines()
for line in content:
	print(line)

file_sample.close()

模块安装与导入

通过pip来安装库

pip是python的包管理工具,该工具提供了对python包的查找、下载、安装、卸载的功能

如果用的是3.0以后的python则使用命令pip3

python 复制代码
pip --version						#pip向前的版本
pip install some-package-name
pip uninstall some-package-name
pip list							#列出当前已经下载的库

数值计算Numpy

直接上例子吧,之后我们就着程序来说:

python 复制代码
import numpy as np
#创建一个数组
arr = np.array([1,2,3,4,5])
print(arr)					#[1 2 3 4 5]
print(type(arr))			#打印出来的数据类型是numpy.ndarray

#创建一个多维数组
arr1 = np.array([1,2,3,4,5],[5,6,7,8,9],[9,10,11,12,13],[13,14,15,16,17])

#索引和切片
print(arr[0])			#1
print(arr[0:3])			#[1 2 3]

print(arr1[0])			#[1 2 3 4 5]	代表第0行
print(arr1[1][2])		#7				代表第一行第二列(从0开始)

#运算
print([1,2,3]+[4,5,6])					  #数组的拼接:[1,2,3,4,5,6]
print(np.arry([1,2,3])+np.arry([4,5,6]))  #结果为[5 7 9](对应位置上的元素相加导致的)
print(np.arry([1,2,3])*np.arry([4,5,6]))  #结果为[4 10 18](对应位置上的元素相乘)
#直接使用+-*/的结果就是对应位置进行计算

#数组的形状操作
arr2 = np.array([1,2,3],[2,3,4],[3,4,5],[4,5,6])
print(arr2.shape)					#形状是(4,3)
new_arr = arr.reshape(2,6)			#若reshape(-1)则排成一行
print(new_arr.shape)				#形状是(2,6)

#多维数组可以被视为矩阵,所以可以进行转置操作
new_arr.transpose()					#转置

#线性代数
#数组的点乘
arr3 = np.array([1,2,3])
arr4 = np.array([4,5,6])
arr3_dot_arr4 = np.dot(arr3,arr4)
#数组的平均值
print(arr3.mean())
#最大值
print(arr3.max())
#最小值
print(arr3.min())
#标准差
print(arr3.std())
#排序
print(np.sort(arr3))		#只能这么写

#筛选
print(arr3[arr3>10])		#将arr3中所有大于10的元素写出来
print(arr3[(arr > 5)&(arr < 10)])#&是按位与 |是按位或

#保存和导入
np.save("arr3",arr3)				#保存
np.load("arr3.npy")					#导入

表格处理Pandas

直接看程序吧

python 复制代码
import pandas as pd
#一个用于读取Excel的函数
df = pd.read_excel("文件名.xlsx","表格名(sheet1)",enging = "openpyxl")
#打印表单的前5行(默认前五行)
print(df.head())
#打印表单数据的前10行
print(df.head(10))
#值得注意的是,被剔除的值会以NAN的形式展示出来
#我们也可以借助pandas来创建表格:
data = {'样本号':[1,2,3],'萼片长(cm)':[8.9,2.1,4.5],'类型_num':[0,0,1]}#这里的类型是代表是否属于样本
dataf = pd.DataFrame(data)
print(dataf)

#基础信息
print(df.info())
#缺失值处理
df = df.dropna()
#强制数据类型转换
df['类型']=df['类型'].astype(float)
#数据的选择和过滤
#打印出所有‘类型’为1的样本
print(df[df['类型']==1])
游客

全部评论 (0)

暂无评论,快来抢沙发吧~