首页 > 编程语言 >go语言 把python项目打包、变量类型、常量、函数基础、函数高级

go语言 把python项目打包、变量类型、常量、函数基础、函数高级

时间:2023-04-25 16:44:19浏览次数:43  
标签:函数 python fmt --- Println int func go

把python项目打包

# https://zhuanlan.zhihu.com/p/624648232
# python----》setuptools--》whl包结构
    公司内部写了包---》公司内部用---》开源出来
    公司写好的项目,打包好,发给客户,客户可以直接运行起来
 
# 你们下的第三方包都是:requests-2.28.2-py3-none-any.whl  whl 结尾的
    
    
# 我们做好的---》可以传到pypi,私有服务,直接发给对方
     pip install 路径/xxx.whl --->把这个包,项目,装在我们自己的解释器上了
     import导入即可
    
# 我们自己的项目打包成whl格式--》分发---》图书馆里系统---》django写的

# lqz_books-0.1.1-py3-none-any.whl

# pip install lqz_books-0.1.1-py3-none-any.whl

go语言变量类型

# 数字  
# int 整数有正负   int8  int16   int32   int64
     java        byte   short  int     long
     int8 一个字节表示(8个比特位) 范围: -2的7次方  到  +2的7次方-1
     int16 2个字节表      范围: -2的15次方  到  +2的15次方-1
     同理以此类推
     int:32位机器,是int32,64位机器是int64
  

# uint  正整数  uint  uint8  uint16   uint32   uint64
     uint8 一个字节表示(8个比特位) 范围: 0 到  +2的8次方-1
     uint16 2个字节表示(8个比特位) 范围: 0 到  +2的16次方-1
     uint:32位机器,是uint32,64位机器是uint64
    
# 浮点型:表示小数  表示小数后范围不一样
    float32:
    float64:
    
    
# 复数类型  实部和虚部
    complex64 
    complex128

# rune  byte
byte 是 uint8 的别名
rune 是 int32 的别名

# string
     双引号包裹的:不能换行
     反引号包裹的:可以换行

# go 也有单引号包裹的,它不是字符串

# 布尔类型
    true
    false

常量

package main

import "fmt"

// 常量:恒定不变的变量,一旦定义,值固定了,不允许修改  const关键字定义的变量
//func main() {
//
//  // 定义常量  const
//  //const name string="lqz"
//  const name ="lqz"
//  fmt.Println(name)
//
//}

// 变量,常量的作用域范围   (变量只要不再同一个范围内,是可以再定义的)

var name = "lqz"
//name:="lqz"
func main() {
    //var name = "pyy"
    name="pyy"
    fmt.Println(name)

}


//  LEGB各自代表的含义


// 5 iota的使用  必须用const关键字
// 同时定义多个常量,第二个如果没有赋初值,初值就是上一个的值
// iota的用法一:后续定义的常量会自增,后续的就可以不用等于iota,会自增
// 只要用了iota,后续的都会自增1,
// iota 放在第几行,值就是多少,后续的都会自增
const (
    a = 10
    b
    c
    d = iota
    e
)

func main() {
    fmt.Println(c)
}

函数基础

package main

import "fmt"

// 函数

func main() {
	//1 调用普通函数
	//test()

	// 2 调用有参数的函数 (类型必须严格一致,有几个值就传几个值,按位置,没有关键字传参)
	//test1(11, "lqz")

	// 3 调用简写的有参函数
	//test2(11, 12, "lqz")

	// 4 调用有返回值的函数
	//res := test3(1, 2)
	//var res = test3(1, 2)
	//var res int= test3(1, 2)
	//fmt.Println(res)
	//test3(3, 4)

	// 5 调用多个参数,多个返回值的函数  必须用多个接收,有几个就要用几个变量接收,不能多不能少
	//res1, res2, res3 := test4(5, 6)
	//fmt.Println(res1)
	//fmt.Println(res2)
	////fmt.Println(res3)
	// 5.1 就不想要第三个参数,后面不会用第三个参数
	//_, _, res1 := test4(5, 6)   // 忽略掉第三
	//fmt.Println(res1)
	////fmt.Println(res2)
	////fmt.Println(res3)
	//fmt.Println(_)  //不能当变量用,就是个空白

}

// 1 定义普通函数,没有参数,没有返回值
func test() {
    fmt.Println("我是普通函数")
}

// 2 有参数的函数,必须指定参数类型
func test1(a int, b string) {
    fmt.Println(a)
    fmt.Println(b)
}

// 3 有参数的函数,多个参数,类型一致可以简写  (go语言想发设法让你少写代码)
//func test2(a, b int, c string) {
//  fmt.Println(a)
//  fmt.Println(b)
//  fmt.Println(c)
//}

// 4 既有参数,又有返回值的 ,只有一个返回值的,需要指明返回值类型
func test3(a, b int) int {
    return a + b
}

// 5 多个参数,多个返回值

func test4(a, b int) (int, int, string) {
    return a + b, a * b, "成功"
}

函数高级

# 同一个包下,变量,函数只能定义一次

# 匿名函数:函数没有名字,一般定义在其他函数内部
f := func() {

}

package main

import "fmt"

// 函数高级
func main() {
	// 1 匿名函数
	//test5()

	// 2 匿名函数赋值给变量
	//test6()

	// 3 调用函数,返回闭包函数
	res := test7()
	fmt.Println(res) //0x68de00 内存地址
	res()

}

// 1 匿名函数加括号直接调用
func test5() {
	func() {
		fmt.Println("我是内层函数")
	}()
}

// 2 匿名函数赋值给一个变量--->函数是一种类型---》在go中,函数又称一等公民(可以赋值给变量的都叫一等公民),又叫头等函数,一等函数
//func test6() {
//	//f:=func() {
//	//	fmt.Println("我是内层函数")
//	//}
//	// f 类型是什么呀?完整定义,写类型
//	var f func() = func() {
//		fmt.Println("我是内层函数")
//	}
//	fmt.Printf("%T", f) // func()
//
//}

// 3 函数是一等公民,是一种类型---》函数的参数和返回值都是类型的一部分

//func test6() {
//	var f func() = func() {
//		fmt.Println("我是内层函数")
//	}
//	var f1 func(int) int = func(a int) int {
//		fmt.Println(a)
//		return 10
//	}
//	var f2 func(int) string = func(c int) string {
//		fmt.Println(a)
//		return "10"
//	}
//	fmt.Printf("%T\n", f)
//	fmt.Printf("%T", f1)
//	f2(1)
//}

func test7() func() {
	//return func() {
	//	fmt.Println("我是内存函数")
	//}
	t := 10
	f := func() {
		fmt.Println(t)
		fmt.Println("我是内存函数")
	}
	return f // 闭包函数
}

标签:函数,python,fmt,---,Println,int,func,go
From: https://www.cnblogs.com/xm15/p/17353091.html

相关文章

  • 仿Django框架-基于wsgiref模块和jinja2模块写一个简单的框架 主流框架简介 动静态网
    目录仿Django框架-基于wsgiref模块和jinja2模块写一个简单的框架一、前期需要的了解背景知识web框架的本质理解1:连接前端与数据库的中间介质理解2:socket服务端手写web框架的大概思路1.编写socket服务端代码2.浏览器访问响应无效>>>:HTTP协议3.根据网址后缀的不同获......
  • Turndown 源码解析:一、辅助函数
    extend()Object.assign的补丁。functionextend(destination){for(vari=1;i<arguments.length;i++){varsource=arguments[i];for(varkeyinsource){if(source.hasOwnProperty(key))destination[key]=source[key];}}ret......
  • golang 通过 os 包进行文件读写
    go中os包主要与操作系统打交道,实际底层还是通过相关的系统调用实现文件的读写操作,今天我们就来聊聊通过os包实现文件的读写操作。我们在使用os包进行相关操作时,主要流程:读操作open->read->close写操作open->read->write->close总体来说,读写操作都......
  • Go
    Go语言Go语言介绍​ 全称Golang,是Google公司2009年11月对外公布的一门编程语言静态,强类型(静态:类型固定强类型:不同类型不允许直接运算)属于编译型语言源代码编译成机器语言,由机器直接执行机器码即可执行。python是解释型语言,想要编译成可执行文件需要借助于pipinstaller......
  • [oeasy]python0140_导入_import_from_as_namespace_
    导入import回忆上次内容上次学习了tryexcept 注意要点半角冒号缩进输出错误信息 有错就报告不要隐瞒否则找不到出错位置还可以用traceback把系统报错信息原样输出  但是代码量好多啊10多行了......
  • 用Python实现十大经典排序算法
    用Python实现十大经典排序算法1.冒泡排序冒泡排序(BubbleSort)是一种比较简单的排序算法,它重复地走访过要排序的元素,依次比较相邻两个元素,如果它们的顺序错误就把他们调换过来,直到没有元素再需要交换,排序完成。算法过程比较相邻的元素,如果前一个比后一个大,就把它们两个对调位......
  • 【Python】操作复杂嵌套的json数据
    1、相关文章递归获取所有key-value值:https://www.cnblogs.com/phoenixy/p/17126455.html 2、对复杂的json进行增删改查①获取数据#-*-coding:UTF-8-*-importjsonfromjsonpath_ngimportparsefromaa_demo.base.loggerimport*classjson_labor_tools:......
  • Google浏览器 查看http版本是1.1还是2.0
    1、打开网页2、F12进入开发者模式3、找到请求4、找到请求头5、找到ResPonseHeather点击Viewparsed......
  • Django(五)
    Django(五)request对象#GETPOSTFILESmethodpathpath_infoget_full_path()bodydefindex(request):print(request.path)#/index/print(request.path_info)#/index/print(request.get_full_path_info())#接收路径的全部内容连参数也能拿到pr......
  • Django 如何使用 Celery 完成异步任务或定时任务
    以前版本的Celery需要一个单独的库(django-celery)才能与Django一起工作,但从Celery3.1开始,情况便不再如此,我们可以直接通过Celery库来完成在Django中的任务。安装Redis服务端以Docker安装为例,安装一个密码为mypassword的Redis服务端dockerrun-itd--name......