针对python语言的基本运用及部分实例分析

针对python语言的基本运用及部分实例分析

从其他资料可以轻易了解到python语言的特性,其基本特性包含:

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

  • Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。

  • Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。

  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

  • Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

由于技术的更迭,python2.0虽然目前在python用户群中依然是主流语言 ,但其份额随着python3.0的出世而不断减少,截至2017年,python3.X的使用者相比较2016年由16年的30%增加到40%左右,python3.X的使用已然成为大势所趋。

笔者近期在进行大数据的学习,需要学习python的基本使用,因此短时间内会进行不定期的更新学习,有兴趣同僚们欢迎一起学习。

首先,学习语言的基础必然是对环境进行初步的安装,python的安装可以选择进入官网进行编译器下载(Python 官网:https://www.python.org/),Windows这里我下载的是python3.9,搭配着pycharm平台进行python的开发运用,至于Linux则是参考在Linux上安装Python3 - lemon锋 - 博客园 (cnblogs.com)进行安装配置。

python基础语法

1.编码格式为UTF-8,标识符与常用语言类似,但允许使用中文作为变量名。

2.python保留相对多的关键字,其中可以通过keyword指令调出所有关键字

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

3.行注释形式为#开头,多行注释可用''' '''及""" """,其中""" """也可在python里表示段落,比如:


#这是第一段注释

print("hello world!");

'''
在这里面
可以进行
多行注释
'''
"""
这里同样
"""

上面代码输出仅为print函数内的字符串。

4.python对行缩进有着严格要求,相同行缩进在条件循环语句中表示一同执行,若未按照格式进行编辑可能导致错误产生。

5.'r'字符在输入输出语句中,与C#  '$'字符类似,存在转换特殊字符的作用,例如:

#这部分输出三个空行
print("\n\n\n");
#这部分输出三个"\n"
print(r"\n\n\n");

2.import 与 from module import

python语言中使用import与from module import ()导入相关模块,例如:

#本段代码为引用request模块中html部分的HTMLSession方法进行全网页文字爬取
from requests_html import HTMLSession
session = HTMLSession()
url = 'http://www.hebi.gov.cn/zghb/920972/436404/436480/436488/3676183/index.html'
r = session.get(url)
print(r.html.text)
#本段为实现程序外部想程序彻底参数及输出模块的目录路径
import sys
print('================Python import mode==========================')
print ('命令行参数为:')
for i in sys.argv:
    print (i)
print ('\n python 路径为',sys.path)

3.变量的声明及初始化

python无需进行变量的声明,系统根据赋值类型进行判断,例如:

#这里表示定义多个整数类型
a=aa=123
#这里表示定义浮点型
b=123.0
#这里表示定义字符型
c="Hello"
#直接进行输出会输出和定义时一模一样的结果
#也可通过type函数和isinstance函数获取变量的数据类型
print(type(a))
>>>isinstance(b,int)

4.常用运算符

算术运算符:常用算术运算符除+、-、*、/外,python中也存在%求余,**幂运算及//求最大接近除数的整数,比如:

#+
>>>5 + 6
11
#-
>>>6-5.5
0.5
#*
>>>1.5*.15
2.22
#/
>>>5/2
2.5
#**
>>>2**3
8
#//
>>>9//2
4

比较运算符:与各大语言定义相同,为==(等同)、!=(不等)、>(大于)、<(小于)、>=()大于等于、<=(小于等于),用于对比左右两边字符情况。

赋值运算符:除常规-=、+=等,python还有例如**=、//=及3.8版本后新增的:=海象运算符(为常量进行赋值),使用方法:

#这里不进行常规赋值运算符演示,只进行较特殊运算符演示
x=2
>>>x**=3
8

y=9
>>>y//=2
4

#官方用例,此处避免了len()函数被两次调用,可缩短判定时间
a = [1, 2, 3, 4, 5 ]
if (n := len(a)) > 10:
    print(f"List is too long ({n} elements, expected <= 10)")

 位运算符:与C语言定义相同,由按位与&、按位或|、按位异或^、取反~、及左移动运算符<<和右移动运算符>>;定义参考:

运算符描述实例
&按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0(a & b) 输出结果 12 ,二进制解释: 0000 1100
|按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。(a | b) 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 111
a = 0011 1100
b = 0000 1101
>>>a&b
0000 1100
>>>a|b
0011 1101
>>>a^b
0011 0001
>>>~a
1100 0011

 逻辑运算符:常用于判断语句中,返回值为bool类型,表示方法为and(且运算)、or(或运算)及not(非运算),使用方法如下:

a=11
b=22
if (a and b)
    print((a and b))
if (a or b)
    print((a or b))
if (a not b)
    print((a not b))


#输出结果为:
false
true
true

 成员运算符:in 、not in 用于判断左边值是否存在右边的数据内,常用于循环语句,例如:

'''
小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。注意,平方和是指将每个数分别平方后求和。请问,在1 到2019 中,所有这样的数的平方和是多少?
'''
sum=0 
for i in range(1,2020):    
    s = str(i)
    if '2' in s or '0' in s or '1' in s or '9' in s:     #用于判断数字是否在i中存在
        sum+= i*i
print(sum)

 python中还存在着较为常用的身份运算符is(用以判断左右值的大小,类似形参比值)、及id()函数(用以获取左右值的内存位置),常用于判断环境中。

5.各种数据类型基本用法

Number:分三种数据类型,int、float及complex类型,int类型不限制大小且可逐字符处理,float根据小数点自动确定小数位,complex类型可通过complex(float x,float y)定义。

例如:

x=1.23
#int()将x转换成整数类型
>>>int(x)
1
y=1
#float()将y转换为float类型
>>>float(y)
1.0
'''
小明对数位中含有2、0、1、9 的数字很感兴趣,在1 到40 中这样的数包括1、2、9、10 至32、39 和40,共28 个,他们的和是574,平方和是14362。注意,平方和是指将每个数分别平方后求和。请问,在1 到2019 中,所有这样的数的平方和是多少?
'''
sum=0 
for i in range(1,2020):    
    s = str(i)
    if '2' in s or '0' in s or '1' in s or '9' in s:
        sum+= i*i
print(sum)

算术运算部分:python自丰富的函数可进行相关函数运算,例如常用的sin(a)函数、tan(a)函数、abs(a)函数及randrange ([start,] stop [,step])函数,用法与上述float函数等一致,这里不再举例。

字符串类型:python对字符串的处理由于封装了较多方法,使得python对于字符串的处理能力也较为突出,其定义后就可根据字符串的索引进行编辑,例如:

#截取从索引1-2的字符串(左合右闭)
x = "hello world"
>>>x[1,3]
el
#截取从开始到后数两位
>>>x[,-2]
hello wor
#从后五位开始截取至后一位
>>>x[-5,-1]
worl
#间隔截取,首数字为开始数字,后为间隔
>>>x[0,3]
hl r

针对二进制流处理,python中也有对应处理方式,例如:

a=b'aaap2222'
>>>a
b'aaap2222'

>>>a[3]
112

#此处输出utf-8编码的字符串
b=bytes('aaaaa',encoding='UTF-8')
>>>b
b'aaaaa'

#此处输出b原字符串
C=b.decode('UTF-8')
>>>C
aaaaa

字符串处理衔接列表处理,字符串中存在许多可供调用的函数,极大简便了用户对字符串的处理。

列表类型:python中的列表可在同一个列表类型存在不一样的数据类型,列表于字符串相似,可以通过索引进行搜索获取,例如:

list1 = ['Google', 'Runoob', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
list4 = ['red', 'green', 'blue', 'yellow', 'white', 'black']
print(list1[3])
print(list1[0])
print(list2[2])
print(list2[-2])
print(list3[0:2])


#上面结果为
1997
Google
3
4
['a','b']

对列表也可进行单项的删除,快速增加,判断及运算,例如:

list = ['Google', 'Runoob', 1997, 2000]
a=len(list)   #求长度
#这里输出list长度
print(a)

del list[0]    #删除索引内值
#这里输出当前状态的list
print(list)

list=list+[4,5,6]  #快速添加
#这里输出当前状态list
print(list)

#这里输出bool值true or false
print(4 in list)



#从上往下输出样式为
4
['Runoob', 1997, 2000]
['Runoob', 1997, 2000,4,5,6]
True

列表同样存在许多可进行存在的函数,包括但不限于max()、min()等求最大值最小值函数,根据实际用途来学习或许效果更好些。

元组与列表存在类似,但元组无法对单项进行任何修改,仅可对整个元组进行增删改查。

字典类型:与变量体类似,对字典的建立、访问及修改有所不同,对字典中每一项的名称叫键,其名称不可变,但值可变,故可用任意不变的不重复的值进行命名,但不可用列表形式命名键名,例如:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
#这里输出字典dict中名为Name的键
print(dict['Name'])

dict['Name']='1111'
#这里输出修改后的dict字典中Name的键
print[dict["Name"]]

dict['school']="NNNNN"
#这里输出新增的school字典键
print(dict['school'])

dict.clear()  #清空字典

del dict #删除字典


上述相关输出:
Runoob
1111
NNNNN

集合类型:与C#中列表定义相似,可以理解为所有类型的汇总处理,但python集合中会自动去除重复项,且可对两个集合进行快速基本运算,例如:

basket = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'}
print(basket)  #输出不含重复项的集合

print('orange' in basket) #输出bool值

a = set('abracadabra')
b = set('alacazam')
print(a-b) #输出a存在且b中不包含的元素


print(a|b) #输出ab不重复项

print(a&b) #输出a和b同时有的不重复的集合

print(a^b) #输出a和b不同时拥有的值

上述所有输出:
{'orange', 'banana', 'pear', 'apple'}
True
{'r', 'd', 'b'}
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
{'a', 'c'}
{'r', 'd', 'b', 'm', 'z', 'l'}

集合的更新设计较多自封装的函数,比如:

thisset = set(("Google", "Runoob", "Taobao"))
thisset.add("Facebook")  #新增数据,已存在则不操作
>>>print(thisset)
{'Taobao', 'Facebook', 'Google', 'Runoob'}

>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.update({1,3})   #update更新可以进行多种样式的更新,参数可包含列表,元组,字典等
>>> print(thisset)
{1, 3, 'Google', 'Taobao', 'Runoob'}
>>> thisset.update([1,4],[5,6])  
>>> print(thisset)
{1, 3, 4, 5, 6, 'Google', 'Taobao', 'Runoob'}

>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.remove("Taobao")  #该部分去除指定项,不存在会报错
>>> print(thisset)
{'Google', 'Runoob'}
>>> thisset.remove("Facebook")   # 不存在会发生错误
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'Facebook'


>>> thisset = set(("Google", "Runoob", "Taobao"))
>>> thisset.discard("Facebook")  # 不存在不会发生错误
>>> print(thisset)
{'Taobao', 'Google', 'Runoob'}

>>> thisset = set(("Google", "Runoob", "Taobao"))
>>>print('Taobao' in thisset)  #判断是否存在该值

6.python的输入输出控制

输入值:python中运用读取键盘输入常用input函数读取,返回值为string字符串类型,input也有多种输入形式可供选择,并可通过format函数或相关直接对应函数修改字符类型,例如:

a=input("输入:")
输入:123   #输入形式为整数形式,但被动转化为str字符串
>>>type(a)
<class 'str'>

a,b,c = (input("请输入三角形三边的长:").split())
>>>type(a)   #获取a的字符类型
<class 'str'> 
a= int(a)
b= int(b)
c= int(c)
>>>type(a)
<class 'int'> 

输出值:python有两种输出格式,分为print函数输出及表达式形式输出,例如:

>>> s = 'Hello, Runoob'
>>> str(s)
'Hello, Runoob'
>>> repr(s)   #repr(): 产生一个解释器易读的表达形式。
"'Hello, Runoob'"
>>> str(1/7)  #str(): 函数返回一个用户易读的表达形式。
'0.14285714285714285'
>>> x = 10 * 3.25
>>> y = 200 * 200
>>> s = 'x 的值为: ' + repr(x) + ',  y 的值为:' + repr(y) + '...'
>>> print(s)
x 的值为: 32.5,  y 的值为:40000...
>>> #  repr() 函数可以转义字符串中的特殊字符
    hello = 'hello, runoob\n'
>>> hellos = repr(hello)
>>> print(hellos)
'hello, runoob\n'
>>> # repr() 的参数可以是 Python 的任何对象
    repr((x, y, ('Google', 'Runoob')))
"(32.5, 40000, ('Google', 'Runoob'))"

#也可对输出字符串进行位数修改
>>> for x in range(1, 11):
        print(repr(x).rjust(2), repr(x*x).rjust(3), end=' ')
        #print('{0:2d} {1:3d} {2:4d}'.format(x, x*x, x*x*x))
        # 注意前一行 'end' 的使用
        print(repr(x*x*x).rjust(4))
 1   1    1
 2   4    8
 3   9   27
 4  16   64
 5  25  125
 6  36  216
 7  49  343
 8  64  512
 9  81  729
10 100 1000
#也可用zfill函数直接补充
>>> '12'.zfill(5)
'00012'

文章实例部分引用菜鸟教程

未完待续

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值