(4)Python环境的搭建与基础语法

    技术2022-07-11  90

    实习第四天,正式进入python语言的学习 安装python以后,搭建环境并且安装几个必备的运行库是最为紧要的事情。 一、搭建虚拟环境 python的版本多且杂,以笔者为例:最新的VS2019中安装的python版本为3.7.5,较老一些的VS版本为3.7.3,而最新的,培训中需要的版本为3.8.3。

    在合作开发中,比python版本不同更大的问题为所需的库版本不同,因此需要统一一个虚拟环境,再在虚拟环境中安装相应的运行库。

    python所自带的功能venv的弊端较大,因此使用virtualenv来进行虚拟环境的搭建

    首先进行pip的更新

    python -m pip install --upgrade pip

    之后使用pip进行virtualenv的安装

    pip install -U pip wheel setuptools virtualenv

    在安装中如果网速过慢,可以使用豆瓣的镜像站进行安装,在这里不过多叙述。

    安装完毕后,即可进行虚拟环境的搭建了。 首先运行CMD,进入搭建环境的目录,在这里我们以D盘为例 输入代码

    virtualenv PyTest1

    即可创建虚拟环境PyTest1 至此我们搭建环境完毕 二、安装丘比特Notebook 在接下来的开发与学习中,所需的全部库与工具全部在虚拟环境中进行开发,因此我们先进入该虚拟环境。 之后通过pip安装丘比特jupyter

    pip install jupyter

    安装完毕后,即可进入notebook

    jupyter notebook

    在右上角点击New,生成一个新的Python项目 Notebook相当于一个简明而易读的Python IDE,在这里写的代码可以导出为各种格式。 最为常用的快捷键为Alt+Enter(加入新的模块)与Ctrl+Enter(编译并运行当前模块) Ctrl+Enter运行第一个Python程序 Alt+Enter 插入新的模块 在Nodebook中,一个Python文件所共用一个变量池,不同模块之间的变量是可以通用的,如果定义了某个变量从用户输入却并没有运行相应的模块,则在后续的调用中会报错。 三、Python基础语法与数据结构 体验Python后的第一感觉即为,简洁。 在Python中,对于整型、浮点、字符串等的判断是交给系统进行的,因此无需先定义变量的类型,而是直接对变量进行赋值即可。

    a=1 b=5.32 c="朱丽叶"

    而Python对于变量的命名也较为宽泛,中文同样可以进行命名。

    一=1 二='B' 三="今晚去吃烤肉吧"

    Python中单引号与双引号是没有区别的,习惯C++编程无需特别更改习惯

    s1="我是老一" s2='我是老二'

    与C++不同,Python不以分号作为语句的结尾,也不以大括号囊括函数的作用范围。 Python使用格式来进行语句的判断与代码块的判断,每一回车即为一行语句,缩进相同为同一代码块。

    age=18 if age >18: print("your age is",age) print("adult") elif age<18: print("aaa") else: print("bbb")

    在Python中,类似于C++数组的数据类型为list与tuple。tuple与list唯一的区别即为tuple不可修改而list可。 list无需声明,直接定义即可,一个list也可以囊括多种数据类型,当然也可以包括list 在list进行定义的时候,使用中括号[]作为边界,使用逗号,进行分割

    classmate=['Lihua','Wangfei',200,250,[12,'lili']]

    使用len函数可以得到list元素的个数

    len(classmate)

    与C++类似,list的索引也是从0开始,因此要注意越界问题

    classmate[0] classmate[1]

    不同的是,list的索引可以为负数,-1即为最后一个元素

    classmate[-1] classmate[-2]

    向list中添加元素可以使用append或者insert函数

    classmate.append("123123") //在最后插入 classmate.insert(2,500)//在索引2的位置插入

    在list中删除元素可以通过pop函数

    classmate.pop()//删除最末尾的元素 classmate.pop(2)//删除索引为2的元素

    直接对list中某一元素赋值可以替换

    classmate[2]="张三"

    tuple在进行定义的时候就必须进行赋值,赋值后不可改变。 在tuple进行定义的时候,使用圆括号()作为边界,使用逗号,分割

    classmate1=('123',222,'张')

    特别地,在定义只有一个元素的空tuple时,为了避免歧义,需要加一个逗号

    test=(1,)

    另一种特殊情况,与C++类似。当tuple中有list元素时,虽然无法修改其他元素,但是可以修改list内的元素。 这种情况类似于C++里const指针数组,虽然指针无法修改,但是指向的对象可以进行修改

    class=(1,"张三",[25,"李四"]) class[2][1]="王五"

    python除了list和tuple外,还具有能够根据键值快速查询的数据类型dict和set dict在初始化的时候,使用大括号{}作为边界,使用逗号,作为分隔符,使用冒号:来定义每一组key-value关系

    d={'ZhangSan':96,'WAngku':65}

    在初始化数组以后,就可以使用键值来进行value的查找与替换

    print(d['WAngku']) d["WAngku"]=100 print(d['WAngku'])

    输出结果为65 100

    使用pop函数可以删除一组数据

    d.pop("ZhangSan")

    与list相同,如果dict遇到不存在的键值也会报错,要注意。 dict的特性为以空间换时间,占用大量的内存来换取快速的查找和插入速度。 在dict当中键值是无法改变的,也因此可变的list对象是无法作为key的

    set与dict类似,但是set中不允许出现相同的键值,并且也不储存value。 set在进行初始化的时候,使用外圆内方括号([])作为边界,使用逗号进行分割","

    s=set([1,2,3])

    set添加元素与删除元素的函数为add和remove

    s.add(4) s.remove(4)

    因为set只有键值与不重复的特性,因此可以作为数学上的集合来进行并、交等运算

    s1={1,2,3,4} s2={2,3,4,5} print(s1 & s2) print(s1 | s2)

    输出{2, 3, 4}与{1, 2, 3, 4, 5} 可以看到,set在进行输出的时候为大括号

    四、基础结构 Python的条件判断、循环等结构与C++类似,但是语法中略有不同。 Python中无需对所判定的条件加圆括号,但是必须在条件后加冒号:,符合条件要执行的代码块需要缩进。

    age = 20 if age >= 18: print('your age is', age) print('adult')

    C++的else指令也可以类似的使用,但是不要忘记冒号与缩进规则

    age = 20 if age >= 18: print('your age is', age) print('adult') else: printf("aaa")

    C++的else if语句在python为elif,语法与if相同,不要忘记冒号

    age=18 if age >18: print("your age is",age) print("adult") elif age<18: print("aaa") else: print("bbb")

    因为python没有大括号{}进行代码块的分割,因此务必要注意缩进,用缩进判断每一个条件判断的作用范围。 在Python中,while循环的语法与C++类似,判断循环进行的条件无需加括号,但需要在最后加冒号

    sum=0 n=99 while n>0: sum-=-n n-=2 print(sum)

    需要注意的是,通过Nodebook进行Python调试中,如果遇到死循环,Nodebook不会自动判定超时而停止运行,需要手动点击上方的中断服务按钮。 可以在while循环中嵌套if条件判断,但是要注意while与if的作用范围。在C++中培养出来良好的代码分段习惯在Python中非常的有用。

    sum1=0 sum2=0 n=100 while n>0: if n%2: sum1-=-n else: sum2-=-n n-=1 print("奇数和为",sum1) print("偶数和为",sum2) s={"奇数和":sum1,"偶数和":sum2}
    Processed: 0.009, SQL: 9