ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python基础知识(一)

2022-07-24 19:01:31  阅读:171  来源: 互联网

标签:name Python res alan 基础知识 python 字符串 变量名


目录

python注释语法

# 注释是代码之母
1.注视就是对代码的解释,不参与程序的运行
2.如何使用注释
	方式1:使用#
	方式2:多行注释  '''多行注释'''
	方式3:快捷键 control+?

代码规范

PEP8规范

变量

# 什么是变量?
	即为变化的量,用于记录事务的某种状态

# 如何使用变量
	日常生活中:
		姓名:alan
		年龄:18
		爱好:学习
	程序中:
		username = "alan"
		age = 18
		hobby = "learn"
	语法格式
		变量名 赋值符号 变量值
		复制顺序:从右往左读取
	底层原理(内存中)***
		1.在内存空间中申请一块内存空间 存储 数据
		2.将18所在的内存空间地址绑定给变量名
		3.之后如果访问数据 就通过变量名访问即可

# 命名规范
	1.变量名只能由数字、字母、下划线任意组合
	2.不能以数字开头,尽量不要用下划线开头(下划线有特殊含义)
	3.变量名不能跟关键字冲突
	4.变量名的命名一定要做到见名知意

# 命名风格
	1.驼峰体  JavaScript推荐使用
		大驼峰
			UserNameFormDb
		小驼峰
			userNameFormDb
	2.下划线  python推荐使用
		user_name_from_db

# 变量三要素
	1.变量的值value
	2.变量的内存地址  print(id(name))  一串数字相当于内存地址编号
	3.变量的类型  print(type(name))

常量

# 主要用于记录一些不变的状态
在python中没有真正意义上的常量 墨守成规的将全大写的变量看成常量,在其他编程语言中,定义了常量之后就不能修改了
	HOST = "127.0.0.1"

# 一般在配置文件中用的比较多

python底层优化

小整数池:
	0-255
python解释器有、pycharm中也有

同一个内存空间由多个变量名指向;但是一个变量名只能指向一个内存地址

===》当数据很小的时候,就会进行优化,数据大的时候就不行了

垃圾回收机制

# 垃圾的定义
	没有变量名指向的数据称之为垃圾

# 针对垃圾数据,python开发了一套自动化回收方案
	1.引用计数
		引用:
		计数:
		===》内存上数据所在的内存地址被引用的次数
	2.标记清除
		当内存即将占满的时候,python回自动暂停程序的执行 从头到尾将内存中数据进行扫描
		并打上标记 之后一次性清除掉标记的数据
	3.分代回收
		通常有三代:青春代、中年代、老年代
		将数据的监管分为三个层次,随着层级的下降监督的频率降低

数据类型

# 什么是数据类型
	在现实生活中存储数据的方式和表现形式
		文本文件、表格文件、视频文件、音频文件、图片文件。。。
	在程序中存储数据的方式和表现形式
		int、float、str、dict、list、set、bool、class、function

# 整形 int
	age = 18
	类型转换:
		res = '123'  ===> res = int(res)  # 只能转化纯数字(整数)
	进制数转换
		bin(100)  # 将十进制的100转为二进制  0b1100100	int("0b1100100", 2) <=> 100
		oct(100)  # 将十进制的100转为八进制  0o144		int("0o144", 8) <=> 100
		hex(100)  # 将十进制的100转为十六进制  0x64		int("0x64", 16) <=> 100

# 浮点型 float
	prince = 99.9
	类型转换
		res = '123.123'  ===> res = float(res)

===》"""整形和浮点型统称为数字类型"""

# 字符串 str
	name = "alan"
	定义方式:
		单引号、双引号、三引号(单三引、双三引)
	内置方法:
		类型转换
			str(res)  # res可以为任意类型数据
		索引取值
			res[0]
		切片操作
			res[1: 4]  # 顾头不顾尾
			res[1: 10: 2]  # 顾头不顾尾,第三个参数为步长
			支持负数
				res[::-1]  # 取反  改变取值方向
		统计字符串内的字符个数
			len(res)
		成员运算
		移除字符串首尾特定字符
			res.strip()  # 如果不指定字符,默认移除首尾空格
			lstrip()  # 右移
			rstrip()  # 左移
		按照指定的字符切割字符
			res.split("|")  # 该方法的结果是一个列表
			res.split("|", maxsplit=1)  # maxsplit用于控制切割次数
			res.lsplit("|")  # 右切
			res.rsplit("|")  # 左切
		字母全小写、字母全大写
			lower()、upper()
			'''实际案例:图片验证码忽略大小写'''
			isupper()  # 判断是否为全大写
			islower()  # 判断是否为全小写
		判断字符串是否以指定的字符开头、以什么什么结尾
			res.startswith("alan")
			res.endswith("18")
		格式化输出format
			res = 'my name in {}'
				res.format("alan")
			res = 'my name in {0},{0}'
				res.format("alan")  # 大括号内写索引值,打破顺序,并且可以反复使用相同位置的数据
			res = 'my name in {name},{age}'
				res.format(name="alan",age=18)  # 大括号内可以指名道姓的要
		字符串的拼接
			方式一:字符串相加
			方式二:join方法
				l = ["alan", "tom"]
				"l".join(l)  # 注意l必须全为字符串类型数据
		替换字符串中指定字符replace
			res.replace("__old: str", "__new: str", count=num)  # 第三个参数默认全选
		判断字符串中是否纯数字isdigit
			res.isdigit()
		字体格式相关
			res.title()  # 所有英语单词首字母大写
			res.capitalize()  # 开头英语单词大写
			res.swapcase()  # 大小写转换
		查找索引
			res.find("alan")  # 从左往右,查找指定字符索引值("a"),找到一个即结束,找不到返回-1
			res.index("w")  # 找不到会报错
		统计某个字符出现的次数
			res.count("alan")
		填充相关
			res.center(15, "$")  # 将res居中展示,并且用指定字符填充
			res.ljust(15, "$")  # 左对齐
			res.rjust(15, "$")  # 左对齐
		判断字符串中既可以包含数字也可以包含字母
			isalnum()
		判断字符串中只包含字母
			isalpha()


# 列表 list
	names_list = ["alan", "tom", "pake"]
	作用:能够存储多个数据,数据可以为任意类型的数据,并方便取出存储的数据
	索引取值:name_lists[0] ===》 "alan"

# 字典 dict
	user_info = {"name": "alan", "age": 18, "hobby": "learn"}
	作用:精确地存储数据,知道存储的数据表示什么意思
	特点:K通常为字符串,起到描述V的作用,为不可变
	基于哈希取值,不能索引取值,需要使用K

# 布尔值 bool
	作用:用于判断事务的对错  是否可行
	定义:布尔值只有两种状态,python中都是大写
		True
		False	0, None, "", [], {}...	对应为False
	ps:针对布尔值的变量名,一般采用is开头

# 元组 tuple
	作用类比于列表(可以看成不可变的列表)
	t = (11 ,22, 33, 44, 55)
	元素不支持修改

# 集合 set
	作用:去重和关系运算
	s = {11, 22, 33, 44}
	定义空集合:
		res = set()

与用户交互

  • 输入
    input('请输入您的用户名>>>:')

    input获取的输入信息全都转换为字符串

  • 输出
    print()

    print参数默认后面有个"\n",可以用end修改:print(123, end="\n")

格式化输出

# 定义:
	将字符串中的某些内容替换掉再输出,就是格式化输出

# 使用
	占位符
		%s:可以给任意数据占位
		%d:只能给数字占位	print('%08d' %123)  # 00000123
	format( )
		res = "名字为{},年龄为{}"
		print(res.format('alan', 18))

运算符

算术运算符:
	+-*/	加减乘除
	**	幂运算
	%	取余
	//	取整
比较运算符:
	== 	# 判断值是否相等
	!=	# 值不等于
	is	# 判断内存地址是否相等
赋值运算符
	赋值
		=
	增量赋值
		n += 1  <=>  n = n + 1  # +=、-=、*=、/=
	链式赋值
		x = y = z = 666
	交叉赋值
		m = 1
		n = 2
		m, n = n, m
	解压赋值
		names_list = ["alan", "tom"]
		user_1, user_2 = names_list  # 注意事项:左右两侧个数要对应上
		user_1, *_ = names_list  # *可以接受多余的元素,赋值给后面的变量名
逻辑运算符
	定义:与或非
		and、or、not
	优先级:
		not > and > or
成员运算
	定义:
		判断某个个体是否在某个群体中
	关键词:in、not in
		返回的是bool值
身份运算
	定义:
		判断两个数据 值和内存地址是否相等

流程控制

# 流程控制即控制事务的执行流程
	任何使用执行流程的结构可以分为三种
		1.顺序结构
			自上而下依次运行
		2.分支结构
			在运行过程中根据条件不同可能会执行不同的流程
		3.循环结构
			在运行过程有些代码需要反复执行
			
# 分支结构
	关键字:if
		'''
		if 条件1:
			条件成立之后执行的子代码块
		elif 条件2:
			条件成立之后执行的子代码块
		else:
			其他

		1.条件都会转化为布尔值 从而决定子代码是否执行
		2.在python中 使用缩进来表示代码的从属关系
		3.并不是所有别的代码都可以拥有子代码
		4.同属于某个代码的多行子代码 必须保持相同的缩进量 python默认4个空格
		'''
	嵌套:
	if a > 1:
		if a < 100:
			print("合法")

# 循环结构
	while循环
		条件
		break:结束本层循环
		continue:结束本次循环,eg:打印0-10的数字,但是需要跳过6
		标志位的使用:将条件换为flag,直接控制标志位进而控制多层循环
		while  + else:
			while循环正常结束下,会走else里的子代码;当break结束循环下,不会执行else里的子代码
		死循环
	for循环
		遍历取值
		for循环字典的key
		range(6) <=> [0, 1, 2, 3, 4, 5]  # 从0开始,顾头不顾尾
			range(4, 10)  # 从4开始,顾头不顾尾
			range(2, 10, 2)  # 第三个参数控制步长
			ps:range关键字在python2中为列表;在python3中是一个迭代器(节省存储空间),相当于python2中的xrange。
		break:结束本层循环
		continue:结束本次循环
		else:在for循环正常结束的情况下,才会执行
		循环嵌套

标签:name,Python,res,alan,基础知识,python,字符串,变量名
来源: https://www.cnblogs.com/AlearnMeta/p/16513941.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有