【Python3入坑】【持续更新中】初识Python(v3.9)【初学のday3发起】

2022-07-26,,,,

初识Python(v3.9)

【——主要针对有C\C++语言基础的Coder吼i】

[by_041]

文章目录

  • 初识Python(v3.9)
            • [by_041]
    • Tips
    • 输入输出
      • 输出
      • 输入:
    • 基本语法
      • 数据类型相关
        • 序列/列表~重点讲一下,存储方式有点像链表~
      • 控制语句~注意上层语句后的':'~
        • 判断
        • 循环
    • 进阶操作(大多与列表list有关!)
  • import
    • 安装插件

Tips

  • 在Python中''""含义一样

  • 注释:

    # 行注释
    
    '''
    语段注释
    '''
    
  • Python对空格、回车和Tab十分敏感,格式要注意了

    • 空格和Tab直接代替了{}行首的缩进情况表示层次,同一个层次中的语句相当于C\C++中被{}括号括起来了
  • 实践证明:精度损失依然存在!!但是,其用了某种方法【我猜是数据扰动】减小了在运行中精度损失对整体的影响

输入输出

输出

  • print():输出所有参数,最后换行
  • 参数表:
参数 含义 默认 注意
end=’’ 输出结尾=’’ 回车 只能在末尾加入【不包括同类标识符,下同】
sep=’.’ 参数间间隔=’.’ 空格 只能在末尾加入
  • 还有格式化输出:

    #(类似C的printf)
    print("格式化字符串"%变量)
    print("格式化字符串"%(变量1,变量2,…))
    
    # 有点C++的cout流的味道
    print("这是变量1:{}\n这是变量2:{}\n这是变量3:{}\n".format(a1, a2, a3))
    print("{:.6f}".format(float(a)))
    
    格式化字符 含义
    %c 字符
    %s 字符串,通过str()字符串转换来格式化
    %i 有符号十进制整数
    %d 有符号十进制整数
    %u 无符号十进制整数
    %o 八进制整数
    %x、%X 十六进制整数
    %e、%E 索引符号
    %f 浮点实数
    %g、%G %f、%e的简写
    %% 输出百分号,%.2f%%

输入:

  • input():输出()中的内容(只允许存在一个参数),然后读取一行字符返回其组成的字符串

    同行输入:

    a,b=map(int,input().split())
    

    如果有多个变量只需:

    a,b,c=map(int,input().split())
    

    用逗号隔开:

    a,b,c=map(int,input().split(','))
    

基本语法

下面的内容基本上就是相较于C\C++的观点

其中C\C++的基本运算符大都被Python很好的保留甚至优化了

不同点有以下:

内容 Before After
真假常数 truefalse TrueFalseNone
逻辑运算 &&||! andornot
无返回值类型 void NoneType

数据类型相关

  • Python中的变量十分灵活

    • 类型:
      • 主要有:整数(int)、实数(float)、字符串(str)、列表(list)
      • 还包括:
        • 等差参数(range):相当于用逗号隔开的一个参数集
        • 无返回型(NoneType)
    • 支持直接赋值a=1s=''
    • 支持递增操作:s+='.'
  • 序列很强大!!!!

    • eg.套娃:[1,2,3,4,[1,2,3,4,[1,2,3,4],5],5]
  • 相关操作:

    • 返回变量类型type(a)
    • 强制类型转换int(a)float(a)str(a)list()
  • 对象内存地址id(a)

  • 运算符号:

    • 字符串str类型可以进行s1+s2(在s1末尾追加s2的串)s*a(s重复a次的串)还有>\<\=\<=\>=(字典序比较)操作

    • a**b:次方,a的b次幂

    • a//b:整除,向下取整

    • 赋值运算符:**=//= [相较与C\C++增添的,++--失效]

    • 成员运算符:in[a in b返回a是否在序列b的元素中]、not in

    • 身份运算符:is[id(a)==id(b)是否引用了同一对象]、is not

    • 运算符优先级

      运算符 描述
      ** 指数(最高优先级)
      *、/、%、// 乘、除、取模、取整除
      >>、<< 右移、左移(位运算)
      & 位’AND’
      ^、| 位运算符
      <=、<、>、>= 比较运算符
      [没有<>、]==、 != 等于运算符
      =、%=、/=、//=、-=、+=、*=、**= 赋值运算符
      is、is not 身份运算符
      in、not in 成员运算符
      and、or、not 逻辑运算符
  • 字符串

    • 表示:[''""'''...'''"""...""",其中'"符号成对基本等价]

      • 和C\C++相同,用""括起来,或用和""基本等价''括起来

        # 差异在:
        print("I'm GOOD !")
        print('I\'m GOOD !')
        # 上面俩句等价,且只能这么写
        print('I said "yes" ')
        print("I said \"yes\" ")
        # t同样,这个也是
        
      • 新增'''间隔几行'''"""间隔几行""",表示多行字符串

        print('''这里是第一行的内容
        中间的内容1
        	中间的内容2
        这里是最后一行''')
        print(‘End_by_041’)
        
        # 输出:
        # 这里是第一行的内容
        # 中间的内容1
        # 	中间的内容2
        # 这里是最后一行
        # End_by_041
        # [Finished in 0.1s]
        
      • 常用的转义字符

        转义字符 描述
        (在行尾时) 续行符
        \ \ 反斜杠
        \ ’ 单引号
        \ " 双引号
        \a 响铃
        \b 退格(BackSpace)
        \000
        \n 换行
        \v 纵向制表
        \t 横向指标
        \r 回车
        \f 换页
        \oyy 八进制数,yy代表的字符,换行
        \xyy 十六进制yy代表字符,例如\x0a代表换行
        \other 其他的字符以普通格式输出
  • 序列/列表重点讲一下,存储方式有点像链表

    • 添加:
      • a.append(b):在列表a尾添加元素b
      • a.insert(f,b):在列表a的f位置添加元素b,原来的f位置以及后面的元素后移
    • 删除:
      • del a[b]:删除列表a的第b号元素
      • a.pop(b):删除列表a的第b号元素,并返回a[b]的值
      • a.remove(b):删除列表a中值为b的第一个元素,不存在则啥也不干,甚至会报错,记得判断
    • 排序:
      • a.sort():对列表a进行永久性排序,按照字母顺序
      • a.sorted():对列表a进行临时性排序
      • a.reverse():对列表a反转排序
    • 属性:
      • a.len():确定长度

    功能强大的体现

    # 代码
    a=[[v for v in range(3)],10,(1,2),[[101],[123,321,[12,12]]]]
    for i in a:
    	print(i)
    
    # 运行结果:
    # [0, 1, 2]
    # 10
    # (1, 2)
    # [[101], [123, 321, [12, 12]]]
    # [Finished in 0.1s]
    
  • 元组

控制语句注意上层语句后的’:’

判断

  • if

    if ???:
        ...
    elif ???:
        ...
    else:
        ...
    

循环

Python中的while()和for的功能就区分的很明确了

break、continue语句仍然适用

然后Python还多了一个占位语句(空语句)操作:pass

然后循环之后可以加一个同一层次的**else:**以至少运行一次!!且比do-while好用也好理解多了!

  • while(条件循环)

    i=1
    while i<=10:
        print(i)
        i+=1
    else:
        print(i)	# 存在的意义:至少运行一次!!且比do-while好用也好理解多了!
    
  • for(遍历循环,按照下标)

    # for的遍历,很像C++11的auto
    for i in range(5):	# 遍历[0,,4]
    	print(i)
    for a in [1,2,3,4]:	# 遍历列表,a的类型是各个元素的类型
    	print(a)
    for c in "Hello!":	# 遍历字符串,c的类型时str,是子串!
        print(c)
    
    
    # 因为是按照下标的
    isp=list(range(11))
    for a in isp:
    	print("now :",a)
    	if a*2 in isp:
    		isp.remove(a*2)
    		print('\tremove(%d)'%(a*2))
    	else:
    		print(a)
    print('')
    for a in isp:
    	print(a,end='')
    # 运行结果:
    # now : 0
    # 	remove(0)
    # now : 2
    # 	remove(4)
    # now : 3
    # 	remove(6)
    # now : 5
    # 	remove(10)
    # now : 7
    # 7
    # now : 8
    # 8
    # now : 9
    # 9
    # 
    # 1235789
    # [Finished in 0.1s]
    

进阶操作(大多与列表list有关!)

min(a,b,...)				# 最小值
max(a,b,...)				# 最大值
sum(a,b,...)				# 求和,只针对数	
# 当list中的俩俩元素类型相同时可以直接在括号中写列表名求相应值



# 链表的切片,这部分的a、b都是大等0的整数
list_name[a:b]				# 下标在[a,b]的元素组成的子序列
list_name[a:]				# 下标a以及其之后的元素组成的子序列
list_name[:b]				# 下标b以及其之前的元素促成的子序列
list_name[-a:]				# 列表中的倒数a个元素所组成的子序列
list_name[:]				# 同样表示列表中的所有元素组成的序列


range(begin,end,step)		# 步长为step在[begin,end)的等差数列,参数一定要是整数(int),可正可负
range(begin,end)			# 默认步长为1在[begin,end)的等差数列
range(a)					# 从0开始的a个整数,[0,,a-1]!!
list(range(a))				# 生成[0,a)的整数列表




# 列表的解析:下面的例子是制作1~9的平方表
squares = [ value**2 for value in range(1,11) ]
# 相当于
#	numbers = list(range(1,11))
#	squares = []
#
#	for number in numbers:
#    	squares.append(number**2)
#	print(squares)



# =======================================
# 调库!!!以下是需要导入库的内容:



import random				# 引入随机数库
x=random.randint(0,100)		# 返回[a,b]范围内的随机整数,天生就是随机数呢!!


from time import perf_counter
print(perf_counter())		# 输出程序运行时间

import

  • 导入整个模块,或者将某个模块中的一个或多个函数导入:

    import some_module
    from some_module import some_function
    from some_module import func_1,func_2,...
    

安装插件

  • 在cmd命令窗输入:

    安装:
    pip install 库名
    更新
    pip install --upgrade 库名
    
  • 博主已安装:

    lxml、 pyOpenSSL 、 Twisted 、pywin32、scrapy
    pillow√,matplotlib√,numpy√,pandas√,jieba√,wordcloud√,imagecodecs√
    等等一堆(漫长)
    

发文时才接触三天python,有不当之处请在评论区指出ha~

可能要过比较久了下次更新的关键词:元组、字典、函数相关

借鉴:CSND网址

本文地址:https://blog.csdn.net/qq_42710619/article/details/110853180

《【Python3入坑】【持续更新中】初识Python(v3.9)【初学のday3发起】.doc》

下载本文的Word格式文档,以方便收藏与打印。