## python学习１

news/2024/2/22 21:42:43/文章来源:https://blog.csdn.net/qq_30143193/article/details/135604822

#科学计数法
#3.34e2 == 3.34 X 10的2次方(相当于x100)　＝　334.0
#3.34e-2 == 3.34 X 10的-2次方(相当于x0.01)　＝　0.0334

//有短路功能测试
a=1
b=0
def f1():
print(“entry f1 function”)
return True
print(a<b or f1())
print(a>b and f1())
print(a<b and f1())

~a=(a+1)*(-1)

if语句的使用
//单分支
age=5
if age>=3:
print(“可以上幼儿园了”)
print(“学习不知道好不好”)

//双分支
uName=input(“请输入用户名：”)
passWard=input("请输入密码: ")
if uName == “jiang” and passWard == “123”:
print(“输入正确，登录成功！”)
else:
print(“输入错误，请重新输入”)

//多分支(注意elif书写，不是C语言的else if)
score=int(input(“请输入你的会员积分：”)) #转换为int类型
if score==0:
print(“注册会员”)
elif score > 0 and score < 200:
print(“铜牌会员”)
elif score >= 200 and score < 500:
print(“银牌会员”)
elif score >= 500 and score < 1000:
print(“金牌会员”)
else:
print(“钻石会员”)

//嵌套if语句
idCode=input("请输入省份证号码: ")
if len(idCode) == 18:
number = int(idCode[-2])
if number % 2 == 0:
print(“女性”)
else:
print(“男性”)
else:
print(“输入错误”)

//循环
count=0
num=0
while count < 100:
count += 1
num = num + count
print(“1-100的和是:”,num)

//无限循环
while True:
num = int(input("请输入一个数字: "))
print("你输入的数字是: ",num)

//while和else组合使用
count=0
while count < 5:
print(“count :”,count)
count += 1
else:
print(count,“大于或等于5”)

//for循环,(可迭代的)
for 临时对象 in 可迭代对象:

languages = [“C”,“C++”,“python”,“Java”]
for x in languages:
print("当前语言是: ",x)

for i in range(6): #range内置函数,生成一个数列
print("当前数列是: ",i)

for i in range(3,7): #range一个区间
print("当前数列是: ",i)

//99乘法表:
for i in range(1,10):
for j in range(1,10):
if j <= i:
print(f’{j}
{i}={i*j}’ , end=‘\t’)
print()

//跳转语句(break),通常结合if判断语句使用
for s in “hello”:
if s== ‘l’:
break
print("当前字母是: ",s)

//双重循环和break的配合使用(判断质数)
for n in range(2,10):
for x in range(2,n):
if n%x == 0:
print(n,“等于”,x,“*”,n//x)
break
else:
print(n,“是质数”)

//跳转语句(continue)
for x in [0,-2,5,7,-10]:
if x <= 0:
continue
print(x)

//pass(空语句，也叫站位语句)

//python容器类型数据
//序列,包括字符串，列表，元组，集合，字典等(相当于数组)
a = “Hello”
print(a[1])
print(max(a))
print(min(a))
print(len(a))

//容器的加和乘操作('+'两边的类型必须相同)
a = “Hello”
print(a + " world")
print(2*a) #hellohello

//容器－>切片操作
sname[start🔚step]
str=“hello world”
print(str[:2]) #从0开始，切2个字符
print(str[::2]) #从0开始，到最后结束,步长是2
print(str[:]) #全部截取

//成员测试运算符 in 和not in
str = “hello”
if ‘e’ in str:
print(“e in str”)
if ‘E’ not in str:
print(“E not in str”)
print(‘e’ in str)

//列表的两种创建方法 []和list函数
listOne=[] #空列表
listTwo=[2,3,4,6]
listThree=[1,‘a’,“aaa”,4.5] #元素类型可以不同
for i in listThree:
print(i)
print(type(listThree[3]))

//list函数创建列表
#listOne=list(1) #错误,必须是可以迭代的
listTwo=list(“python”)
print(listTwo)
listThree=list([1,“hello”,1.23])
print(listThree)

from collections import Iterable
print(isinstance(listThree,Iterable)) #判断是否是可迭代对象的方法

//容器追加元素
l=[20,3,5]
print(l)
l.append(56)
print(l)
l2=[55,32]
l.extend(l2)
print(l)

//容器插入元素
name=[“zhangsan”,“lisi”,“wangwu”]
name.insert(2,“jiangxiaoer”)
print(name)

//替换元素
name=[“zhangsan”,“lisi”,“wangwu”]
name[1] = “jianghuaiwei” #替换
print(name)

//删除元素

//del语句
name=[“zhangsan”,“lisi”,“wangwu”]
del name[2]
print(name) #[‘zhangsan’, ‘lisi’]
//remove函数
name=[“zhangsan”,“lisi”,“wangwu”]
name.remove(“lisi”)
print(name)
//pop函数
number=[1,2,3,4,5]
print(number.pop()) #不指定，则移除最后一个元素
print(number)
print(number.pop(2)) #移除第二个元素
print(number)

//元组的创建

tupleOne=()
tupleTwo=(1,2,3,3,4)
tupleThree=(2,“hello”,3,44) #元组的元素类型可以不同
print(tupleThree)
//另一种创建元组方法
tupleA = tuple(“hello”)
print(tupleA)

//元组拆包

val = (10,20)
a,b=val #元组拆包,元素的个数和变量的个数必须相同
print(a)
print(b)

//集合
//集合是一种可迭代的，无序的，不能包含重复元素的容器
//集合分为可变集合和不可变集合
setOne = set((1,2,3,3)) #用元组创建集合
setTwo = set([1,2,3,3]) #必须有set关键字,用列表创建集合
print(type(setOne))
print(type(setTwo))
print(setTwo)
setThree = {1,2,2,4} #用{}创建集合
print(setThree)
setFour = frozenset([1,2,3]) #不可变集合
print(setFour)

//集合添加元素
setOne = set()
setOne.update(“jiang”) #添加多个元素,字符串的每个字符作为一个元素
print(setOne)

//集合删除元素
setOne={1,2,4,5,6}
setOne.remove(4)
#setOne.remove(4) 再次调用会出错
print(setOne)
print(setOne)
setOne.pop() #删除某个随机元素
print(setOne)
setOne.clear() #清空元素
print(setOne)

//字典

dict1 = {“key1”:“jiang”,“key2”:“suhui”} #第一种创建字典方法
print(dict1)
score = {} #
print(type(score))
dict2 = dict(name=‘a’,age=‘b’) #使用dict内置函数创建字典
print(dict2)
//dict创建字典，可以接收的参数包括(字典，元组，列表),作为参数可以创建字典

//修改字典(包括添加，修改，删除)
dict1 = {“key1”:“jiang”,“key2”:“suhui”}
dict1.update(k3=“huang”) #update添加,注意k3没有引号
print(dict1)
dict1[“k4”] = “zhang” #第二种添加方法
print(dict1)
dict1[“key1”] = “yuhaizhi” #修改元素
print(dict1)
#pop,popitem,clear等成员函数，删除字典元素
dict1.pop(“key2”) #删除方法1
print(dict1)
dict1.popitem() #删除方法,随机删除元素
dict1.clear() #清空元素
print(dict1)

//字典元素访问
//可以访问所有的item,所有的key，所有的value
info = {‘001’:“jiang”,‘002’:“suhui”}
print(info.items()) #dict_items([(‘001’, ‘jiang’), (‘002’, ‘suhui’)])
for i in info.items(): #(‘001’, ‘jiang’) (‘002’, ‘suhui’)
print(i)
print(info.keys()) #dict_keys([‘001’, ‘002’])
for i in info.keys():
print(i)
print(info.values()) #dict_values([‘jiang’, ‘suhui’])
for i in info.values():
print(i)

//字符串的学习
//普通字符串
str = ‘hello"aaa’#内部如果用双引号，则外侧要用单引号,发过来也是
print(str)
str2 = ‘\u0048’
print(str2) #输出’H’
//原始字符串(以字母r或者R作为前缀的字符串，如R’‘或者r’‘,则称作为原始字符串)
str2 = r’\u0048’ #里面的’‘不具有转义字符的功能,主要用于[路径]的解析
print(str2) #\u0048
//长字符串

str = ‘’’

‘’’
print(str)

//字符串转换为数字
a = int(“10”)
print(type(a))
a = int(“ab”,16) #按16进制转换
print(a)
//数字转换为字符串(str是内置函数)
a = str(12)
print(type(a))
a = str(True)
print(a) #输出True

//格式化字符串
python的字符串可通过占位符%,format()方法和f-string三种方式实现格式化字符串输出;
(占位符的使用)
name=“小强”
print(“你好，我叫%s” %name) #占位符的使用
age = 20;
print(“你好，我叫%s,年龄%d” %(name,age)) #多个占位符使用
(format的方法)

name=“小强”
age = 20
print((“你好，我叫{},今年{}岁了”).format(name,age)) #format的使用
print((“你好，我叫{1},今年{0}岁了”).format(name,age))#另一种方式是通过参数占位符匹配输出
//format还可以对数字进行格式化，包括保留n位小数，数字补齐和显示百分比;
(1)保留n位小数,格式:{:.nf}
pi = 3.1415926
print(“{:.2f}”.format(pi)) #3.14
(2)数字补齐
n = 1
print(“{:0>3d}”.format(n)) #001
(3)显示百分比
n = 0.1
print(“{:.0%}”.format(n)) #10%
(f-string方法)
age=20

//字符串拼接
ip=“127.0.0.1”
//字符串查找
str1=“abcdefg”
index=str1.find(“d”) #返回的是对应索引，如果没找到，返回-1
print(index) #3
index=str1.find(“d”,1,3) #在1到3之间查找
print(index) #-1
//字符串替换
word=“我是小强，我今年20岁”
new1 = word.replace(‘我’,‘他’) #所有的"我"都替换为"他"
print(new1) #注意，需要用新的字符串接收才可以
new2 = word.replace(“我”,“他”,1) #只替换一个
print(new2)
//字符串分割
#返回的是字符串列表
word=“1,2,3,4,5”
tmp=word.split(‘,’) #没有传递参数，默认以空格分割
print(tmp)
tmp=word.split(‘,’,3) #最大分割３次
print(tmp)
//去除字符串两侧空格
word=" strip "
tmp = word.strip() #默认以空格去除
print(tmp)
word=“aaabbb*”
tmp=word.strip(“*”)
print(tmp)

//python函数学习
def 函数名(参数列表): #def是关键字,必须有

[return 语句]
def fun(a,b):
return a+b
print(fun(3,4))
//无参函数
b=10
def area():
a=3 + b
print(“a is %d” %a)
return a
print(area()) #如果没有()，则调用的是函数地址
//函数的位置参数(好理解不赘述)，关键字参数，默认值参数，不定长参数(主要这四种)
#关键字参数
print(f"姓名: {name}“)
print(f"年龄: {age}”)
#默认值参数
print(info(name=“小王”,age=20))
#不定长参数
def fun(*args): #元组的形式
print(args)
fun(1,2,3,‘a’,‘b’) # (1, 2, 3, ‘a’, ‘b’) 以元组的形式输出
def fun(**args): #以关键字(字典)的形式
print(args)
fun(a=1,b=2,c=3,d=‘aaa’) #字典形式输出: {‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: ‘aaa’}

//局部变量作用域
def fun():
name=“python”
print(name)
#print(name)#出了作用域
fun()
//全局变量
count=10
def Fun():
global count #如果修改全局变量的时候，必须用global 修饰下变量，否则会认为是局部变量
count += 10
print(count)
Fun()

//匿名函数(lambda [arg1,arg2]:expression)
area = lambda a,h:(a*h)0.5
print(area)
print(area(3,4))
//递归函数(递归必须有结束条件)
def factorial(num):
if num==1:
return 1
else:
return num
factorial(num-1)
print(factorial(5))#120
//常用内置函数
abs,len,help,ord,chr,filter(用于过滤容器，返回一个新的列表)

### 使用PyTorch实现混合专家(MoE)模型

Mixtral 8x7B 的推出在开放 AI 领域引发了广泛关注&#xff0c;特别是混合专家&#xff08;Mixture-of-Experts&#xff1a;MoEs&#xff09;这一概念被大家所认知。混合专家(MoE)概念是协作智能的象征&#xff0c;体现了“整体大于部分之和”的说法。MoE模型汇集了各种专家模型…

### 【REST2SQL】10 REST2SQL操作指南

【REST2SQL】01RDB关系型数据库REST初设计 【REST2SQL】02 GO连接Oracle数据库 【REST2SQL】03 GO读取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版实现 【REST2SQL】05 GO 操作 达梦 数据库 【REST2SQL】06 GO 跨包接口重构代码 【REST2SQL】07 GO 操作 Mysql 数据库 【RE…

### rsync全面讲解

rsync 是一个常用的 Linux 应用程序&#xff0c;用于文件同步。 它可以在本地计算机与远程计算机之间&#xff0c;或者两个本地目录之间同步文件&#xff08;但不支持两台远程计算机之间的同步&#xff09;。它也可以当作文件复制工具&#xff0c;替代cp和mv命令。 它名称里面…

### 基础面试题整理4

1.mybatis的#{}和\${}区别 #{}是预编译处理&#xff0c;\${}是字符串替换#{}可以防止SQL注入&#xff0c;提高安全性 2.mybatis隔离级别 读未提交 READ UNCOMMITED&#xff1a;读到了其他事务中未提交的数据&#xff0c;造成"脏读","不可重复读","幻读&…