Python基础语法及应用

 一、基本数据类型及应用

1、基本数据

(1)整数(int)

在 Python 中,整数是一种基本的数据类型,用于表示没有小数部分的数字,整数没有固定的最大值,可以根据系统内存动态调整。Python 3 中有两种整数类型:

int:普通整数类型。
long:长整数类型,在 Python 2 中使用,Python 3 中的 int 类型可以自动转换为长整数。

 实例:

a=2
b=4
d="5"
c=int(d)     #强制转化:将字符串转化为整型
print(b/a)   #输出:2.0
print(c//a)  #输出:2
print(c%a)   #输出:1
print(a**b)  #输出:16
(2)浮点数(float)

在 Python 中,浮点数是一种表示有小数部分的数字的数据类型。Python 中的浮点数遵循 IEEE 754 标准,通常以双精度格式存储(即64位)。表示带有小数点的数值,如 3.14、-0.5 等。

实例:

a=6.66666
b=4
d="2.5"
z = 6.02e3       #6.02x10^3
c=float(d)       #强制转化:将字符串转化为浮点型
print(b*c)       #输出:10.0
print(z)         #输出:6020.0
k=round(a*c,3)   #两小数相乘,保留三位小数(会四舍五入)
print(k)         #输出:16.667
(3)布尔值(bool)

在 Python 中,布尔值是一种表示真(True)或假(False)的数据类型。布尔类型通常用于逻辑判断和条件控制,例如在条件语句(if 语句)、循环语句等中使用,只有两个取值 True 和 False。

任何非零、非空、非空字符串、非空列表等都会被视为 True,而零、空、空字符串、空列表等会被视为 False。

 实例:

print(3==4)             #输出: false
print(3!=4)             #输出: true
print(3>4)              #输出: false
print(4<=4)             #输出: true
print(3==4 or 4==4)     #输出: true
print(3==4 and 4==4)    #输出: false
print(not 3==4)         #输出: true
print(bool(0))          #输出: false
print(bool(""))         #输出: false
print(bool("123"))      #输出: true
(4)字符串(str)

在 Python 中,字符串是一种不可变的数据类型,用于表示文本数据。字符串可以使用单引号(' ')或双引号(" ")来定义。

实例:

name="hello"
name_1='world'
print(name+","+name_1)            # 输出: hello,world
print(name[1])                    # 输出: e
print(name[1:4])                  # 输出: ell
print(f"who: {name}")             # 输出: who: hello
print("who: {}".format(name_1))   # 输出: who: world
s = "  Hello, World!  "
print(s.upper())                  # 转换为大写
print(s.strip())                  # 去除首尾空格
words = s.split(',')              # 按逗号分割字符串
new_string = '-'.join(words)      # 用破折号连接字符串列表
print(new_string)                 # 输出:   Hello- World!
name_2="MathMode"
age=16
print("Name: %s, Age: %d" % (name_2, age))    # 输出:Name: MathMode, Age: 16
(5)列表(list)

Python 中的列表(List)是一种有序、可变的数据结构,用于存储一组元素。列表可以包含任意类型的元素,包括数字、字符串、对象等,并且可以根据需要进行动态增加、删除和修改。

实列:

my_list = [1, 2, 3, 4, 5]
you_list = ["you", "list"]
print(my_list[2])                          # 输出:3   获取第三个元素
print(len(my_list))                        # 输出:5   得到list长度
print(my_list[1:3])                        # 输出:[2,3]   获取索引1到2的子列表
you_list.append(8)                         # 向list末尾添加元素
print(you_list)                            # 输出:['you', 'list', 8]
squares = [x ** 2 for x in range(1, 5)]    # 创建一个包含 1 到 4 平方值的列表
print(squares)                             # 输出:[1, 4, 9, 16]
new_list=my_list+you_list                  # 连接两个列表
print(new_list)                            # 输出:[1, 2, 3, 4, 5, 'you', 'list', 8]
new_my_list=my_list*2                      # 重复列表元素
print(new_my_list)                         # 输出:[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
(6)元组(tuple)

在 Python 中,元组(Tuple)是一种有序、不可变的数据结构,用于存储一组元素。与列表不同,元组一旦创建就无法修改,也就是说元组是不可变的。由于元组是不可变的,因此不能对元组进行添加、删除或修改操作,但可以通过拼接等方式生成新的元组。

实例:

my_tuple = (1, 2, 3, 4)
print(my_tuple[1])                          # 输出: 2    获取第二个元素
print(my_tuple.index(2))                    # 输出: 1    获取元素为2的索引
a, b, c, d = my_tuple                       # 将元组中的元素分别赋值给变量 a, b, c
print(a,b,c,d)                              # 输出: 1 2 3 4
new_tuple = my_tuple + (3, 4, 5, 6, 7, 8)   # 拼接两个元组生成新的元组
print(new_tuple)                            # 输出:(1, 2, 3, 4, 3, 4, 5, 6, 7, 8)
print(new_tuple.count(3))                   # 输出:2    统计元素为2的数量
(7)集合(set)

在 Python 中,set(集合)是一种无序且元素唯一的集合数据类型。它类似于数学中的集合概念,可以用于执行各种集合操作,如并集、交集、差集等。用于存储无序、唯一元素的数据结构。

实例:

my_set = {1, 2, 3, 4, 5,5}
you_set = set([4,5,5,6,7,8,9])
print(my_set)                # 输出:{1, 2, 3, 4, 5}
print(you_set)               # 输出: {4, 5, 6, 7, 8, 9}
print(my_set | you_set)      # 输出:{1, 2, 3, 4, 5, 6, 7, 8, 9}   并集
print(my_set & you_set)      # 输出:{4, 5}                        交集
print(my_set - you_set)      # 输出:{1, 2, 3}                     差集
print(my_set ^ you_set)      # 输出:{1, 2, 3, 6, 7, 8, 9}         对称差集

my_set.add(10)               # 向集合中添加单个元素
you_set.update([10,11])      # 向集合中添加多个元素
my_set.remove(2)             # 移除集合中的指定元素,如果元素不存在则引发 KeyError 异常
you_set.discard(7)           # 移除集合中的指定元素,如果元素不存在也不会引发异常。
print(my_set)                # 输出:{1, 3, 4, 5, 10}
print(you_set)               # 输出:{4, 5, 6, 8, 9, 10, 11}
my_set.clear()               # 清空集合中的所有元素
(8)字典(dict)

在 Python 中,字典(Dictionary)是一种无序的数据结构,用于存储键-值(key-value)对。字典是可变的,可以动态地添加、删除和修改其中的元素。键(key)唯一,值(value)可以不唯一。

实例:

my_dict={"name": "MathMode", "age": 20, "city": "classroom", "sex": "man"}
print(my_dict["name"])                  # 输出: MathMode   通过键(key)访问值(value)
my_dict["grade"] = "CET-4"              # 添加新的键-值对
del my_dict["city"]                     # 删除键为 "city" 的键-值对
for key in my_dict:                     # 遍历字典
    print(key, my_dict[key])
my_dict["age"] = 31                     # 修改键 "age" 对应的值
for key, value in my_dict.items():      # 遍历字典
    print(key, value)
value = my_dict.pop("age")              # 删除并返回键为 "age" 的值
values = my_dict.values()               # 得到字典的所有值(还有keys()方法得到所有键)
value_list = list(values)               # 使用列表化获取所有值
print(value_list)                       # 输出 ['MathMode', 'man', 'CET-4']

2、基本应用

 2.1、注解及缩进
(1)注解

单行注解:以#号开头。

多行注解:以三个单引号(''')或双引号(""")开头和结尾。

实例:

# 单行注解
'''
  多行注解1
  多行注解1
'''
"""
  多行注解2
  多行注解2
"""
(2)缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

实例:(看输出结果)

print("缩进1")
if True:
    print("缩进2")
    if True:
        print("缩进3")
        if False:
            print("缩进4")
    print("缩进5")
print("缩进6")
2.2 输入输出
 (1)输入语法

<变量名> = input(<提示性文字>)

input() 函数始终将用户输入解释为字符串,如果需要将其转换为其他类型(如整数或浮点数),则需要显式进行类型转换。

(2)输出语法

print(value1, value2, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

print() 函数可以接受多个参数,并且在打印时会将它们用空格分隔。您也可以通过设置 sep 参数来指定分隔符。且默认会在输出结束时自动换行,如果不想换行,可以设置 end 参数为空字符串 end=''。

(3)实例
n=eval(input("请输入:"))  # eval: 动态地执行字符串表达式,并返回表达式的结果。
m=list(map(int,input("请输入一组数据:").split()))
print(n*4,end=" ")  # 输出后不换行
print(m)
print(11,"study","who",3.14,sep='|')  # 将默认为逗号的分隔符,改为自定义的'|'符号

二、Python爬虫

Python爬虫指的是使用Python编程语言编写的网络爬虫程序,用于从互联网上获取信息。网络爬虫是一种自动化程序,通过访问网页并提取其中的数据,可以用于各种目的,如数据采集、搜索引擎索引、信息监控等。

Python是一种功能强大且易于学习的编程语言,拥有丰富的第三方库和工具,因此成为了爬虫开发的热门选择。

Python的爬虫库一般包括:
(1)Requests: 用于发送HTTP请求,获取网页内容。
(2)Beautiful Soup: 用于解析HTML和XML文档,提取所需的数据。
(3)Scrapy: 一个功能强大的爬虫框架,提供了高效的爬取、处理和存储数据的功能。
(4)Selenium: 用于模拟浏览器行为,支持动态网页的爬取

模板:

import requests
from bs4 import BeautifulSoup

# 网页URL
url = "http://example.com"

# 发送GET请求
response = requests.get(url)

# 解析网页
soup = BeautifulSoup(response.text, 'html.parser')

# 找到指定的div(假设div的id为'mydiv')
div = soup.find('div', id='mydiv')

# 获取div中的内容
text = div.get_text()

#输出内容
print(text)

三、Python在数学建模中的简单应用

 1、基础图形实现

在 Python 中,matplotlib 是一个用于绘制图表和数据可视化的库,而 pyplot 模块是 matplotlib 库的一个子模块,提供了类似于 MATLAB 的绘图接口。

 1.1、饼状图
import matplotlib.pyplot as plt

# 饼状图数据
labels = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']  # 标签
sizes = [10.5, 15.5, 4, 7.5, 19.5, 8, 1, 11, 8, 5]  # 各部分占比(百分比)

# 饼状图属性设置
colors = ['red', 'green', 'blue', 'yellow', 'orange', 'cyan', 'purple', 'pink', 'brown', 'gray']  # 颜色设置
explode = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0)  # 突出显示某一部分,把想凸显的部分设置的参数大于0即可,这里未设置凸显部分

# 画饼状图
plt.pie(sizes, explode=explode, labels=labels, colors=colors, autopct='%1.1f%%',shadow=True, startangle=90)

# 设置标题
plt.title('Myweige')

# 显示图形
plt.axis('equal')  # 保证长宽相等,使饼状图为正圆形
plt.show()
1.2、折线图
import matplotlib.pyplot as plt

# x 轴数据
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 第一条线的 y 轴数据
y1 = [2, 6, 3, 28, 10, 7, 12, 9, 15, 11]

# 第二条线的 y 轴数据
y2 = [11, 3, 5, 7, 9, 1, 21, 8, 6, 18]

# 绘制第一条线
plt.plot(x, y1, label='Line 1')

# 绘制第二条线
plt.plot(x, y2, label='Line 2')

# 添加标题和轴标签
plt.title('Weige Picture')
plt.xlabel('X')
plt.ylabel('Y')

# 添加图例
plt.legend()

# 显示图形
plt.show()
1.3、柱状图
import matplotlib.pyplot as plt

# x轴数据
x = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K']

# y轴数据
y = [10, 15, 7, 12, 9, 13, 8, 11, 6, 17, 14]

# 绘制柱状图
plt.bar(x, y)

# 添加标题和轴标签
plt.title('Example')
plt.xlabel('X-lable')
plt.ylabel('y-lable')

# 显示图形
plt.show()
1.3、散点图
import matplotlib.pyplot as plt

# x轴数据
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# y轴数据
y = [6, 7, 8, 9, 10, 2, 11, 4, 1, 5]

# 绘制散点图
plt.scatter(x, y)

# 添加标题和轴标签
plt.title('Weige-Example')
plt.xlabel('X-label')
plt.ylabel('Y-label')

# 显示图形
plt.show()

 2、数据处理

实例:有一个名为"Test1.xlsx"的文件数据如下:

要求:把数据中样本A、样本B、样本C分别选出来,并创建相应的xlsx文件。

Python代码如下:(相关代码作用看注解)

import numpy as np
import pandas as pd
data=pd.DataFrame(pd.read_excel('.\Test1.xlsx',sheet_name='Sheet1'))#'.\'表示相对路径,读取表名为”Sheet1“的表
print(data)
data_a=data.loc[data['样本']=='A'].reset_index(drop=True)#把样本'A'的数据选出来存入data_a中
data_b=data.loc[data['样本']=='B'].reset_index(drop=True)#把样本'B'的数据选出来存入data_b中
data_c=data.loc[data['样本']=='C'].reset_index(drop=True)#把样本'C'的数据选出来存入data_c中
print(data_a)
print(data_b)
print(data_c)
data_a.to_excel("样本A.xlsx")#创建名字为'样本A.xlsx'的文件并把数据导入文件中
data_b.to_excel("样本B.xlsx")#创建名字为'样本B.xlsx'的文件并把数据导入文件中
data_c.to_excel("样本C.xlsx")#创建名字为'样本C.xlsx'的文件并把数据导入文件中
#在a,b,c中选取data_a为样例:
num_a=(data_a==12).astype(int).sum(axis=1)#按行统计值为12的个数
num_a=(240-np.array(num_a)).tolist()#num_a=240-上行统计的个数
print(num_a)
tota_a=data_a.sum(axis=1).to_list()#对data_a的数据按行求和
print(tota_a)

程序创建的文件在该程序文件目录下(运行程序自动会创建相应文件),如图:

 

相关推荐

  1. Lua 脚本语言基础语法应用

    2024-04-08 17:08:04       17 阅读
  2. 基于Python的图形用户界面设计应用

    2024-04-08 17:08:04       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-08 17:08:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-08 17:08:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-08 17:08:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-08 17:08:04       18 阅读

热门阅读

  1. Spring Cloud五大组件以及工作原理

    2024-04-08 17:08:04       15 阅读
  2. 前端js获取当hppt协议

    2024-04-08 17:08:04       14 阅读
  3. 想做产品经理,应该选择什么专业?

    2024-04-08 17:08:04       16 阅读
  4. 1368:对称二叉树(tree_c)

    2024-04-08 17:08:04       16 阅读
  5. c++组合requires语句

    2024-04-08 17:08:04       18 阅读
  6. 蓝桥杯第十五届抱佛脚(十)贪心算法

    2024-04-08 17:08:04       17 阅读
  7. Git Flow困境逃脱指南

    2024-04-08 17:08:04       15 阅读
  8. Go-学会使用切片

    2024-04-08 17:08:04       15 阅读
  9. RPM换算成m/s或m/min

    2024-04-08 17:08:04       16 阅读
  10. GO - 标准库

    2024-04-08 17:08:04       15 阅读
  11. Hamilton-Jacobi-Bellman (HJB) 方程

    2024-04-08 17:08:04       17 阅读