史上最全Python快速入门教程,满满都是干货

探索Python中的VPython库:创造交互式3D图形 探索Python中的VPython库:创造交互式3D图形在Python的众多库中,VPython以其独特的功能脱颖而出,它允许用户在简单的代码中创建和操作3D图形。VPython不仅简化了3D编程的复杂性,还提供了一种直观的方式来展示物理现象、数据可视化以及教育演示。本文将深入探讨VPython库的使用,从基础概念到高级应用,帮助你掌握这一强大的工具。安装完成后,你就可以开始使用VPython来创建3D场景了。 阅读详情

Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。
Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。

Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。

Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它被称为多用途,因为它可以用于网络,企业,3D CAD等软件和系统开发。

在Python中,不需要使用数据类型来声明变量,因为它是动态类型的,所以可以写一个如 a=10 来声明一个变量a中的值是一个整数类型。

Python使开发和调试快速,因为在python开发中没有包含编译步骤,并且编辑 <-> 测试 <-> 调试循环使用代码开发效率非常高。

史上最全Python快速入门教程,满满都是干货

 

这里多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以进裙930900780领取。

Python是一种高级,解释,交互和面向对象的脚本语言。 Python被设计为高度可读性。 它使用英语关键字,而其他语言使用标点符号。它的语法结构比其他语言少。

  • Python是解释型语言 - Python代码在解释器中运行时处理,执行前不需要编译程序。 这与PERL和PHP类似。
  • Python是交动的 - 在Python提示符下面直接和解释器进行交互来编写程序。
  • Python是面向对象的 - Python支持面向对象的风格或编程技术,将代码封装在对象内。
  • Python是一门初学者的语言 - Python是初学者程序员的伟大语言,并支持从简单的文本处理到WWW浏览器到游戏的各种应用程序的开发。

第一节 Python 可以用来开发什么?

Python作为一个整体可以用于任何软件开发领域。下面来看看Python可以应用在哪些领域的开发。如下所列 -

1.基于控制台的应用程序

Python可用于开发基于控制台的应用程序。 例如:IPython。

2.基于音频或视频的应用程序

Python在多媒体部分开发,证明是非常方便的。 一些成功的应用是:TimPlayer,cplay等。

3.3D CAD应用程序

Fandango是一个真正使用Python编写的应用程序,提供CAD的全部功能。

4.Web应用程序

Python也可以用于开发基于Web的应用程序。 一些重要的开发案例是:PythonWikiEngines,Pocoo,PythonBlogSoftware等,如国内的成功应用案例有:豆瓣,知乎等。

5.企业级应用

Python可用于创建可在企业或组织中使用的应用程序。一些实时应用程序是:OpenErp,Tryton,Picalo等。

6.图像应用

使用Python可以开发图像应用程序。 开发的应用有:VPython,Gogh,imgSeek等

第二节 Python安装和环境配置

Python 3适用于Windows,Mac OS和大多数Linux操作系统。即使Python 2目前可用于许多其他操作系统,有部分系统Python 3还没有提供支持或者支持了但被它们在系统上删除了,只保留旧的Python 2版本。

可参考我上一篇文章。

第三节 Python命令行参数

Python提供了一个getopt模块,用于解析命令行选项和参数。

$ python test.py arg1 arg2 arg3
Shell

Python sys模块通过sys.argv提供对任何命令行参数的访问。主要有两个参数变量 -

  • sys.argv是命令行参数的列表。
  • len(sys.argv)是命令行参数的数量。

这里sys.argv [0]是程序名称,即脚本的名称。比如在上面示例代码中,sys.argv [0]的值就是 test.py。

示例

看看以下脚本command_line_arguments.py的代码 -

#!/usr/bin/python3
import sysprint ('Number of arguments:', len(sys.argv), 'arguments.')
print ('Argument List:', str(sys.argv))
Python

现在运行上面的脚本,这将产生以下结果 -

F:\>python F:\worksp\python\command_line_arguments.py
Number of arguments: 1 arguments.
Argument List: ['F:\\worksp\\python\\command_line_arguments.py']
F:\>python F:\worksp\python\command_line_arguments.py arg1 arg2 arg3 arg4
Number of arguments: 5 arguments.
Argument List: ['F:\\worksp\\python\\command_line_arguments.py', 'arg1', 'arg2', 'arg3', 'arg4']
F:\>
Python

注意 - 如上所述,第一个参数始终是脚本名称,它也被计入参数的数量。

解析命令行参数

Python提供了一个getopt模块,可用于解析命令行选项和参数。该模块提供了两个功能和异常,以启用命令行参数解析。

getopt.getopt方法

此方法解析命令行选项和参数列表。以下是此方法的简单语法 -

getopt.getopt(args, options, [long_options])
Python

getopt.GetoptError异常

当在参数列表中有一个无法识别的选项,或者当需要一个参数的选项不为任何参数时,会引发这个异常。
异常的参数是一个字符串,指示错误的原因。 属性msg和opt给出错误消息和相关选项。

示例

假设想通过命令行传递两个文件名,也想给出一个选项用来显示脚本的用法。脚本的用法如下 -

usage: file.py -i <inputfile> -o <outputfile>
Shell

以下是command_line_usage.py的以下脚本 -

#!/usr/bin/python3
import sys, getoptdef main(argv):   inputfile = ''
   outputfile = ''
   try:      opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
   except getopt.GetoptError:      print ('GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>')
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print ('usage: command_line_usage.py -i <inputfile> -o <outputfile>')
         sys.exit()
      elif opt in ("-i", "--ifile"):
         inputfile = arg
      elif opt in ("-o", "--ofile"):
         outputfile = arg
   print ('Input file is "', inputfile)
   print ('Output file is "', outputfile)
if __name__ == "__main__":
   main(sys.argv[1:])
Python

现在,使用以下几种方式运行来脚本,输出如下所示:

F:\worksp\python>python command_line_usage.py -h
usage: command_line_usage.py -i <inputfile> -o <outputfile>
F:\worksp\python>python command_line_usage.py -i inputfile.txt -o
GetoptError, usage: command_line_usage.py -i <inputfile> -o <outputfile>
F:\worksp\python>python command_line_usage.py -i inputfile.txt -o outputfile.txt
Input file is " inputfile.txt
Output file is " outputfile.txt
F:\worksp\python>
Shell

第四节 Python变量类型

变量是保存存储值的内存位置。也就是说,当创建一个变量时,可以在内存中保留一些空间。

基于变量的数据类型,解释器分配内存并决定可以存储在保留的存储器中的内容。 因此,通过为变量分配不同的数据类型,可以在这些变量中存储的数据类型为整数,小数或字符等等。

史上最全Python快速入门教程,满满都是干货

 

将值分配给变量

在Python中,变量不需要明确的声明类型来保留内存空间。当向变量分配值时,Python会自动发出声明。 等号(=)用于为变量赋值。

=运算符左侧的操作数是变量的名称,而=运算符右侧的操作数是将在存储在变量中的值。 例如 -

#!/usr/bin/python3
counter = 100          # 一个整型数
miles   = 999.99       # 一个浮点数
name    = "Maxsu"       # 一个字符串
site_url  = "http://www.yiibai.com" # 一个字符串
print (counter)
print (miles)
print (name)
print (site_url)
Python

这里,100,999.99和“Maxsu”分别是分配给counter,miles和name变量的值。执行上面代码将产生以下结果 -

100
999.99 
Maxsuhttp://www.yiibai.com
Shell

多重赋值

Python允许同时为多个变量分配单个值。

例如 -

a = b = c = 1
Python

这里,创建一个整数对象,其值为1,并且所有三个变量都分配给相同的内存位置。还可以将多个对象分配给多个变量。 例如 -

a, b, c = 10, 20, "maxsu"
Python

这里,将两个值为10和20的整数对象分别分配给变量a和b,并将一个值为“maxsu”的字符串对象分配给变量c。

标准数据类型

存储在内存中的数据可以是多种类型。 例如,一个人的年龄可存储为一个数字值,他的地址被存储为字母数字字符串。 Python具有各种标准数据类型,用于定义可能的操作以及每个标准数据类型的存储方法。

Python有五种标准数据类型 -

  • 1.数字
  • 2.字符串
  • 3.列表
  • 4.元组
  • 5.字典

1.Python数字

数字数据类型存储数字值。当为其分配值时,将创建数字对象。 例如 -

var1 = 10
var2 = 20
Python

可以使用del语句删除对数字对象的引用。 del语句的语法是 -

del var1[,var2[,var3[....,varN]]]]
Python

可以使用del语句删除单个对象或多个对象。

例如 -

del var
del var_a, var_bPython

Python支持三种不同的数值类型 -

  • int(有符号整数)
  • float(浮点实值)
  • complex(复数)

Python3中的所有整数都表示为长整数。 因此,长整数没有单独的数字类型。

例子

以下是一些数字示例 -

int float complex 10 0.0 3.14j 100 15.20 45.j -786 -21.9 9.322e-36j 080 32.3+e18 .876j -0490 -90. -.6545+0J -0x260 -32.54e100 3e+26J 0x69 70.2-E12 4.53e-7j

复数是由x + yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位。

2.Python字符串

Python中的字符串被标识为在引号中表示的连续字符集。Python允许双引号或双引号。 可以使用片段运算符([]和[:])来获取字符串的子集(子字符串),其索引从字符串开始处的索引0开始,并且以-1表示字符串中的最后一个字符。

加号(+)是字符串连接运算符,星号(*)是重复运算符。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.pystr = 'yiibai.com'
print ('str = ', str)          # Prints complete string
print ('str[0] = ',str[0])       # Prints first character of the string
print ('str[2:5] = ',str[2:5])     # Prints characters starting from 3rd to 5th
print ('str[2:] = ',str[2:])      # Prints string starting from 3rd character
print ('str[-1] = ',str[-1])      # 最后一个字符,结果为:'!'
print ('str * 2 = ',str * 2)      # Prints string two times
print ('str + "TEST" = ',str + "TEST") # Prints concatenated string
Python

将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_str1.py
str =  yiibai.comstr[0] =  ystr[2:5] =  ibastr[2:] =  ibai.comstr[-1] =  mstr * 2 =  yiibai.comyiibai.comstr + "TEST" =  yiibai.comTEST
F:\worksp\python>Shell

2.Python列表

列表是Python复合数据类型中最多功能的。 一个列表包含用逗号分隔并括在方括号([])中的项目。在某种程度上,列表类似于C语言中的数组。它们之间的区别之一是Python列表的所有项可以是不同的数据类型,而C语言中的数组只能是同种类型。

存储在列表中的值可以使用切片运算符([]和[])来访问,索引从列表开头的0开始,并且以-1表示列表中的最后一个项目。 加号(+)是列表连接运算符,星号(*)是重复运算符。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file: variable_types_str1.pylist = [ 'yes', 'no', 786 , 2.23, 'minsu', 70.2 ]
tinylist = [100, 'maxsu']
print ('list = ', list)          # Prints complete list
print ('list[0] = ',list[0])       # Prints first element of the list
print ('list[1:3] = ',list[1:3])     # Prints elements starting from 2nd till 3rd 
print ('list[2:] = ',list[2:])      # Prints elements starting from 3rd element
print ('list[-3:-1] = ',list[-3:-1])    
print ('tinylist * 2 = ',tinylist * 2)  # Prints list two times
print ('list + tinylist = ', list + tinylist) # Prints concatenated lists
Python

将上面代码保存到 variable_types_str1.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_list.py
list =  ['yes', 'no', 786, 2.23, 'minsu', 70.2]
list[0] =  yes
list[1:3] =  ['no', 786]
list[2:] =  [786, 2.23, 'minsu', 70.2]
list[-3:-1] =  [2.23, 'minsu']
tinylist * 2 =  [100, 'maxsu', 100, 'maxsu']
list + tinylist =  ['yes', 'no', 786, 2.23, 'minsu', 70.2, 100, 'maxsu']
F:\worksp\python>Shell

3.Python元组

元组是与列表非常类似的另一个序列数据类型。元组是由多个值以逗号分隔。然而,与列表不同,元组被括在小括号内(())。

列表和元组之间的主要区别是 - 列表括在括号([])中,列表中的元素和大小可以更改,而元组括在括号(())中,无法更新。元组可以被认为是只读列表。 例如 -

#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_tuple.pytuple = ( 'maxsu', 786 , 2.23, 'yiibai', 70.2  )
tinytuple = (999.0, 'maxsu')
# tuple[1] = 'new item value' 不能这样赋值
print ('tuple = ', tuple)           # Prints complete tuple
print ('tuple[0] = ', tuple[0])        # Prints first element of the tuple
print ('tuple[1:3] = ', tuple[1:3])      # Prints elements starting from 2nd till 3rd 
print ('tuple[-3:-1] = ', tuple[-3:-1])       # 输出结果是什么?
print ('tuple[2:] = ', tuple[2:])       # Prints elements starting from 3rd element
print ('tinytuple * 2 = ',tinytuple * 2)   # Prints tuple two times
print ('tuple + tinytuple = ', tuple + tinytuple) # Prints concatenated tuple
Python

将上面代码保存到 variable_types_tuple.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_tuple.py
tuple =  ('maxsu', 786, 2.23, 'yiibai', 70.2)
tuple[0] =  maxsu
tuple[1:3] =  (786, 2.23)
tuple[-3:-1] =  (2.23, 'yiibai')
tuple[2:] =  (2.23, 'yiibai', 70.2)
tinytuple * 2 =  (999.0, 'maxsu', 999.0, 'maxsu')
tuple + tinytuple =  ('maxsu', 786, 2.23, 'yiibai', 70.2, 999.0, 'maxsu')
F:\worksp\python>
Shell

以下代码对于元组无效,因为尝试更新元组,但是元组是不允许更新的。类似的情况可能与列表 -

#!/usr/bin/python3
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # 无法更新值,程序出错
list[2] = 1000     # 有效的更新,合法
Python

Python字典

Python的字典是一种哈希表类型。它们像Perl中发现的关联数组或散列一样工作,由键值对组成。字典键几乎可以是任何Python数据类型,但通常为了方便使用数字或字符串。另一方面,值可以是任意任意的Python对象。

字典由大括号({})括起来,可以使用方括号([])分配和访问值。例如 -

#!/usr/bin/python3
#coding=utf-8
# save file : variable_types_dict.pydict = {}dict['one'] = "This is one"
dict[2]     = "This is my"
tinydict = {'name': 'maxsu', 'code' : 1024, 'dept':'IT Dev'}
print ("dict['one'] = ", dict['one'])       # Prints value for 'one' key
print ('dict[2] = ', dict[2])           # Prints value for 2 key
print ('tinydict = ', tinydict)          # Prints complete dictionary
print ('tinydict.keys() = ', tinydict.keys())   # Prints all the keys
print ('tinydict.values() = ', tinydict.values()) # Prints all the values
Python

将上面代码保存到 variable_types_dict.py 文件中,执行将产生以下结果 -

F:\worksp\python>python variable_types_dict.py
dict['one'] =  This is one
dict[2] =  This is my
tinydict =  {'name': 'maxsu', 'code': 1024, 'dept': 'IT Dev'}
tinydict.keys() =  dict_keys(['name', 'code', 'dept'])
tinydict.values() =  dict_values(['maxsu', 1024, 'IT Dev'])
Shell

字典中的元素没有顺序的概念。但是说这些元素是“乱序”是不正确的; 它们是无序的。

数据类型转换

有时,可能需要在内置类型之间执行转换。要在类型之间进行转换,只需使用类型名称作为函数即可。

有以下几种内置函数用于执行从一种数据类型到另一种数据类型的转换。这些函数返回一个表示转换值的新对象。它们分别如下所示 -

编号 函数 描述 1 int(x [,base]) 将x转换为整数。如果x是字符串,则要base指定基数。 2 float(x) 将x转换为浮点数。 3 complex(real [,imag]) 创建一个复数。 4 str(x) 将对象x转换为字符串表示形式。 5 repr(x) 将对象x转换为表达式字符串。 6 eval(str) 评估求值一个字符串并返回一个对象。 7 tuple(s) 将s转换为元组。 8 list(s) 将s转换为列表。 9 set(s) 将s转换为集合。 10 dict(d) 创建一个字典,d必须是(key,value)元组的序列 11 frozenset(s) 将s转换为冻结集 12 chr(x) 将整数x转换为字符 13 unichr(x) 将整数x转换为Unicode字符。 14 ord(x) 将单个字符x转换为其整数值。 15 hex(x) 将整数x转换为十六进制字符串。 16 oct(x) 将整数x转换为八进制字符串。

第五节 Python基本运算符

运算符是可以操纵操作数值的结构。如下一个表达式:10 + 20 = 30。这里,10和20称为操作数,+则被称为运算符。

运算符类型

Python语言支持以下类型的运算符 -

  • 1.算术运算符
  • 2.比较(关系)运算符
  • 3.赋值运算符
  • 4.逻辑运算符
  • 5.按位运算符
  • 6.成员运算符
  • 7.身份运算符

下面让我们依次来看看所有的运算符。

1.算术运算符

假设变量a的值是10,变量b的值是21,则 -

运算符 描述 示例 + 加法运算,将运算符两边的操作数增加。 a + b = 31 - 减法运算,将运算符左边的操作数减去右边的操作数。 a – b = -11 * 乘法运算,将运算符两边的操作数相乘 a * b = 210 / 除法运算,用右操作数除左操作数 b / a = 2.1 % 模运算,用右操作数除数左操作数并返回余数 b % a = 1 ** 对运算符进行指数(幂)计算 a ** b,表示10的21次幂 // 地板除 - 操作数的除法,其结果是删除小数点后的商数。 但如果其中一个操作数为负数,则结果将被保留,即从零(向负无穷大)舍去 9//2 = 4 , 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0

 

2.比较(关系)运算符

比较(关系)运算符比较它们两边的值,并确定它们之间的关系。它们也称为关系运算符。假设变量a的值10,变量b的值是20,则 -

运算符 描述 示例 == 如果两个操作数的值相等,则条件为真。 (a == b)求值结果为 false != 如果两个操作数的值不相等,则条件为真。 (a != b)求值结果为 true > 如果左操作数的值大于右操作数的值,则条件成为真。 (a > b)求值结果为 false < 如果左操作数的值小于右操作数的值,则条件成为真。 (a < b)求值结果为 true >= 如果左操作数的值大于或等于右操作数的值,则条件成为真。 (a >= b)求值结果为 false <= 如果左操作数的值小于或等于右操作数的值,则条件成为真。 (a <= b)求值结果为 true

 

3.赋值运算符

假设变量a的值10,变量b的值是20,则 -

运算符 描述 示例 = 将右侧操作数的值分配给左侧操作数 c = a + b表示将a + b的值分配给c += 将右操作数相加到左操作数,并将结果分配给左操作数 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

 

4.逻辑运算符

Python语言支持以下逻辑运算符。假设变量a的值为True,变量b的值为False,那么 -

运算符 描述 示例 and 如果两个操作数都为真,则条件成立。 (a and b)的结果为False or 如果两个操作数中的任何一个非零,则条件成为真。 (a or b)的结果为True not 用于反转操作数的逻辑状态。 not(a and b) 的结果为True。

 

5.按位运算符

按位运算符执行逐位运算。 假设变量a = 60; 和变量b = 13; 现在以二进制格式,它们将如下 -

a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
Shell

Python的内置函数bin()可用于获取整数的二进制表示形式。

以下是Python语言支持位运算操作符 -

运算符 描述 示例 & 如果它存在于两个操作数中,则操作符复制位到结果中 (a & b) 结果表示为 0000 1100

如果它存在于任一操作数,则复制位。 (a

b) = 61 结果表示为 0011 1101 ^ 二进制异或。如果它是一个操作数集合,但不是同时是两个操作数则将复制位。 (a ^ b) = 49 (结果表示为 0011 0001) ~ 二进制补码,它是一元的,具有“翻转”的效果。 (~a ) = -61有符号的二进制数,表示为1100 0011的补码形式。 << 二进制左移,左操作数的值由右操作数指定的位数左移。 a << 2 = 240 (结果表示为 1111 0000) >> 二进制右移,左操作数的值由右操作数指定的位数右移。 a >> 2 = 15(结果表示为0000 1111)

 

6.成员运算符

Python成员运算符测试给定值是否为序列中的成员,例如字符串,列表或元组。 有两个成员运算符,如下所述 -

运算符 描述 示例 in 如果在指定的序列中找到一个变量的值,则返回true,否则返回false。 - not in 如果在指定序列中找不到变量的值,则返回true,否则返回false。 -

 

7.身份运算符

身份运算符比较两个对象的内存位置。常用的有两个身份运算符,如下所述 -

运算符 描述 示例 is 如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False。 is not 如果运算符任一侧的变量指向相同的对象,则返回True,否则返回False。 -

 

8. 运算符优先级

下表列出了从最高优先级到最低优先级的所有运算符,如下所示 -

序号 运算符 描述 1 ** 指数(次幂)运算 2 ~ + - 补码,一元加减(最后两个的方法名称是+@和-@) 3 * / % // 乘法,除法,模数和地板除 4 + - 5 >> << 向右和向左位移 6 & 按位与 7 ^

史上最全Python快速入门教程,满满都是干货

 

按位异或和常规的“OR” 8 <= < > >= 比较运算符 9 <> == != 等于运算符 10 = %= /= //= -= += *= **= 赋值运算符 11 is is not 身份运算符 12 in not in 成员运算符 13 not or and 逻辑运算符


最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以进裙930900780领取。

 

本文章素材来源于网络,如有侵权请联系删除。

python可视化艺术:VPython实现大物理模型 量子力学是现代物理学的基石,但其抽象概念往往难以理解。我们的第一个模拟通过可视化氢原子中电子的量子波函数,使这一微观世界变得可见。流体力学在工程、气象和医学领域有广泛应用。第二个模拟使用SPH(光滑粒子流体动力学)方法,展示了流体的复杂行为。宇宙尺度的天体物理学是现代科学最前沿的领域之一。我们的第三个模拟展示了星系环绕中央超大质量黑洞的形成和演化过程。VPython将强大的3D可视化能力与Python的简洁语法相结合,为科学教育和研究提供了绝佳工具。 阅读详情

相关推荐

python快速入门,看这一篇就够了!

python快速入门,看这一篇就够了!

weixin_74009895的博客 6598

VPython三维仿真(NO.1) VPython安装与开发环境

介绍Python下三维动画模块VPython开发三维仿真的知识。

weixin_44366962的博客 1万+

ArcGIS | 全球新冠肺炎地图数据下载和处理

ArcGIS

thinkpang的博客 2901

VPython三维仿真(NO.3) 导入复杂模型

将复杂模型导入VPython

weixin_44366962的博客 2955

Rust 与 Golang 深度对决:从语法到应用场景的全方位解析

Rust 定义函数以fn关键字开头,参数需明确指定类型,返回值类型紧跟在箭头->之后。// 定义函数add,接收两个i32类型参数a和b,返回i32类型结果,功能为两数相加a + bRust 和 Golang 各有千秋,在不同领域展现独特优势。Rust 凭借强大的内存安全与高性能,在系统编程、网络编程以及对内存安全和性能要求高的场景中表现突出;Golang 则以简洁语法和出色并发性能,在云计算、分布式系统、Web 开发等领域占据一席之地。

muyouking 1770

若依框架整合Flowable:从零构建企业级流程中心

本文详细介绍了如何将若依框架与Flowable工作流引擎整合,构建企业级流程中心。通过环境配置、依赖添加、数据库设置等核心步骤,实现流程定义管理、任务处理服务等关键功能,并结合实际案例展示请假审批流程的实现与动态表单集成。文章还提供了性能优化和生产建议,帮助开发者高效构建稳定可靠的工作流系统。

weixin_28365523的博客 230

【Python教程】史上最全Python快速入门教程,满满都是干货

Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。 Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。 Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。 Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它被称为多用途,因为它可以用于网络,企业,3D CAD等软件和系统开发。 在Python中,不需要使用

q985875757的博客 1407

树莓派Bookworm系统避坑指南:3种方法解决pip install报错externally-managed-environment

本文详细解析树莓派Bookworm系统中pip install报错externally-managed-environment的成因,并提供三种实用解决方案:使用虚拟环境(venv)隔离项目依赖、通过pipx管理全局Python工具,以及理解风险后的系统安装方法。帮助开发者安全高效地管理Python环境,避免系统冲突。

android的专栏 764

python安装vpython_史上最全Python快速入门教程,满满都是干货

Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它...

weixin_32591379的博客 696

【PCIe EP 设备入门学习专栏 -- 8 PCIe EP 架构详细介绍】

Synopsys PCIe 5.0 EP 架构由多个功能模块组成,整体遵循分层 + 模块化设计CXPL(事务层 + 链路层 + 物理层 MAC)XADM(仲裁/生成)、XAIM(应用接口)RADM(过滤/路由/Completion)CDM(配置空间)、PMC(电源管理)、LBC/DBI(寄存器访问)MSG_GEN(消息)、CXS(多芯片一致性)

CodingCos的博客 383

材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集

钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。

2201_76125393的博客 47

2024年Python最新史上最全Python快速入门教程,满满都是干货

爬虫抓取的对象是各类型的网站,对于网站所有者来说,有些内容并不希望被所有人搜到,所以需要设定协议,来告知爬虫哪些内容是不允许抓取的。从另外一个角度来讲,假设爬虫程序在抓取过程中死掉,或者爬虫所在的服务器宕机,健壮的爬虫应能做到:再次启动爬虫时,能够恢复之前抓取的内容和数据结构,而不是每次都需要把所有工作完全从头做起,这也是爬虫健壮性的一种体现。这里的性能主要是指爬虫下载网页的抓取速度,常见的评价方式是以爬虫每秒能够下载的网页数量作为性能指标,单位时间能够下载的网页数量越多,爬虫的性能越高。

2401_84689803的博客 599

Test软件:Keysight二次开发_(3).安装与配置开发环境

在开始进行Keysight软件的二次开发之前,首先需要确保您的开发环境已经正确安装和配置。本节将详细介绍如何安装和配置必要的开发工具和依赖项,以便您能够顺利进行开发工作。

2401_87715305的博客 1413

最新最好的python教程_史上最全Python快速入门教程,满满都是干货

Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它...

weixin_39997194的博客 756

YOLO11涨点优化:损失函数优化 | 引入MPDIoU,利用边界框左上角和右下角距离,彻底解决重叠框匹配失效问题

【摘要】针对目标检测中重叠框匹配失效问题,本文提出基于MPDIoU损失函数的解决方案。MPDIoU通过同时约束边界框的左上角和右下角两点距离,有效解决了传统IoU损失在重叠场景下的优化歧义问题。文章首先分析YOLO系列在密集目标检测中的性能瓶颈,指出GIoU/CIoU等现有方法无法区分相同IoU值但偏移方向不同的预测框。随后详细解析MPDIoU的数学原理及其相对于主流损失函数的优势,证明两点距离约束能提供唯一优化方向。最后给出在YOLO11中实现MPDIoU的具体方案,包括核心代码修改点和架构适配建议。实验

2601_95807009的博客 172

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

python快速入门期末版_史上最全Python快速入门教程,满满都是干货

原博文2020-10-11 17:07 −Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。Python支持多种编程模式,包括面向对象编程,命令...相关推荐2019-09-28 21:13 −Pytho...

weixin_39638012的博客 220

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

python程序开发入门教程_史上最全Python快速入门教程,满满都是干货

Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它...

weixin_39856630的博客 762

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

cad和python哪个应该学_史上最全Python快速入门教程,满满都是干货

Python是面向对象,高级语言,解释,动态和多用途编程语言。Python易于学习,而且功能强大,功能多样的脚本语言使其对应用程序开发具有吸引力。Python的语法和动态类型具有其解释性质,使其成为许多领域的脚本编写和快速应用程序开发的理想语言。Python支持多种编程模式,包括面向对象编程,命令式和函数式编程或过程式编程。Python几乎无所不能,一些常用的开发领域,如Web编程。这就是为什么它...

weixin_39728909的博客 660

2024年史上最全Python快速入门教程,满满都是干货_博客python教程(2)

100 999.99 Maxsuhttp://www.yiibai.com Shell a = b = c = 1 a, b, c = 10, 20, “maxsu” var1 = 10 var2 = 20 del var1[,var2[,var3[…,varN]]]] del var del var_a, var_bPython int float complex 10 0.0 3.14j 100 15.20 45.j -786 -21.9 9.322e-36j 080 32.3+e18 .876j -0

2401_84556783的博客 779

2024Python春招面试,史上最全Python快速入门教程,满满都是干货_博客python教程,带你碾压面试官的女生

可以使用片段运算符([]和[:])来获取字符串的子集(子字符串),其索引从字符串开始处的索引0开始,并且以-1表示字符串中的最后一个字符。存储在列表中的值可以使用切片运算符([]和[])来访问,索引从列表开头的0开始,并且以-1表示列表中的最后一个项目。因此,通过为变量分配不同的数据类型,可以在这些变量中存储的数据类型为整数,小数或字符等等。它的语法结构比其他语言少。在Python中,不需要使用数据类型来声明变量,因为它是动态类型的,所以可以写一个如 a=10 来声明一个变量a中的值是一个整数类型。

2401_84121603的博客 782

2024年最新互联网公司面试一般问什么,史上最全Python快速入门教程,满满都是干货_博客python教程(1),2024年最新面试阿里巴巴运营岗位会问到哪些问题

print ('tuple[-3:-1] = ', tuple[-3:-1]) # 输出结果是什么?print (‘str[-1] = ‘,str[-1]) # 最后一个字符,结果为:’!site_url = “http://www.yiibai.com” # 一个字符串。name = “Maxsu” # 一个字符串。tuple[2] = 1000 # 无法更新值,程序出错。list[2] = 1000 # 有效的更新,合法。

fghis的博客 1187
上一篇: 从零开始学python之Python安装和环境配置
下一篇: 用Python获取英雄联盟皮肤原画?走过路过不要错过
python阿喵
博客等级 码龄6年 169粉丝 127原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值