Python程序基本知识
Python程序基本知识
一. 数据类型与变量
1.1 变量
**变量:**在Python中不需要事先声明变量名及其类型,直接赋值即可创建各种类型的变量
x='Hello World'
#创建了整型变量x,并赋值为Hello World'
即使如此,Python依然是强类型的编程语言,Python解释器会根据·赋值和运算来自动推断变量类型。同时,Python也是·一种强类型的语言,变量类型可以随时变化。
在Python有提供了一个检测当前变量的数据类型函数 type(),返回的是 一个数据类型的结果
同时也提供了**isinstance()**用来测试对象是否为指定对象的实例
age = 99
print(age,type(age))
<class 'int'>
isinstance('Hello World',str)
True
变量名规范
- 变量名必须以字母或下划线开头,但以下环线开头的变量在python中有特殊的含义
- 变量名中不能有空格以及标点符号(括号、引号、逗号、斜线、反斜线等等)
- 不能使用关键字作变量名
- 变量名区分英文字母大小写
1.2 数据类型
数据类型 : 数据的表现形式
数据 : 你在计算机内输入的任何东西都是数据
int 整数类型(整型)
#整型其实就是十进制整数的统称,比如:1、68、999都属于整型。他一般用于表示 年龄、序号等。 number = 10
age = 99 print(age,type(age))
bool 布尔类型
# 布尔值,其实就是 “真”、“假” 。并且注意是大写的 ! data = False
a = True print(type(a))
str 字符串类型
# 字符串,我们平时会用他来表示文本信息。例如:姓名、地址、自我介绍等。 name = 'James'
address = '霞飞路87号'
introduce = '我叫......'
data = '1234' # 注意 : 这个也是字符串的形式 只要是引号包起来的就是 字符串 # 如果有变量接收 , 那么他就不是注释
s = """
比如说这是一个很长的内容.....
""" # 单双引号可以互相嵌套,但是不能嵌套自己
content = 'i "love" u 'float 浮点类型
浮点型,一般在开发中用于表示小数。 v1 = 3.14
v2 = 9.89list 列表(极其重点)
dict 字典(极其重点)
tuple 元组(了解)
set 集合 (了解)
1.3 数据类型的转化
- str >> int 可以用int()函数进行转化
s = '123' # 123
s = 'love' # 不能转化成 int类型
s = 'love123' # 报错
s = True # 1
i = int(s)
print(i , type(i)
int>> str 可以用str()函数进行转化
i = 123
i = 3.14
i = True s = str(i) print(s,type(s)) # 可以验证是 str字符串类型int >> float
a = 88
f = float(a)
print(f)float >> int
f = 88.99
a = int(f) # 注意向下取整 print(a)bool
a = 0.9 # True
a = '0' # False
a = "" # False
a = 0 # False b = bool(a)
print(b) # 非0 的为True , 0 为False
自动转化
a = 199
b = True print(a + b) # 200 可以自动转换 True 变成 1 False 变成 0 print(11 +22.3) #会把整型 变成浮点类型 然后再进行计算
二. 运算符
算数运算符
比较(关系)运算符
逻辑运算符
赋值运算符
2.1 算数运算符
- 是完成基本的算术运算使用的符号,用来处理四则运算
| 运算符 | 描述 | 实例 |
|---|---|---|
| + | 加 | 10 + 20 = 30 |
| - | 减 | 10 - 20 = -10 |
| * | 乘 | 10 * 20 = 200 |
| / | 除 | 10 / 20 = 0.5 |
| // | 取整除 | 返回除法的整数部分(商) 9 // 2 输出结果 4 |
| % | 取余数 | 返回除法的余数 9 % 2 = 1 |
| ** | 幂 | 又称次方、乘方,2 ** 3 = 8 |
在 Python 中
*运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果
a = "-" * 50
print(a)
a = 1 + 1
print(a)
a = "1" + "1"
print(a) # 注意 字符串"相加" 是拼接
2.2 比较(关系)运算符
| 运算符 | 描述 |
|---|---|
| == | 检查两个操作数的值是否 相等,如果是,则条件成立,返回 True |
| != | 检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True |
| > | 检查左操作数的值是否 大于 右操作数的值,如果是,则条件成立,返回 True |
| < | 检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True |
| >= | 检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True |
| <= | 检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True |
print(2 !=2 )
print(2 ==2 )
2.3 逻辑运算符
| 运算符 | 逻辑表达式 | 描述 |
|---|---|---|
| and | x and y | 只有 x 和 y 的值都为 True,才会返回 True 否则只要 x 或者 y 有一个值为 False,就返回 False |
| or | x or y | 只要 x 或者 y 有一个值为 True,就返回 True 只有 x 和 y 的值都为 False,才会返回 False |
| not | not x | 如果 x 为 True,返回 False 如果 x 为 False,返回 True |
print(2==2 and 4==4) # and
print(2 ==2 or 2 >4) # or
print(2 !=2 or 2 >4)
print(not 2==2) # not
print(not False)
2.4 赋值运算符
- 在 Python 中,使用
=可以给变量赋值 - 在算术运算时,为了简化代码的编写,
Python还提供了一系列的 与 算术运算符 对应的 赋值运算符 - 注意:赋值运算符中间不能使用空格
| 运算符 | 描述 | 实例 |
|---|---|---|
| = | 简单的赋值运算符 | c = a + b 将 a + b 的运算结果赋值为 c |
| += | 加法赋值运算符 | c += a 等效于 c = c + a |
| -= | 减法赋值运算符 | c -= a 等效于 c = c - a |
a = 1
b = 2
a = a + b # a += b
print(a) # 3
2.5 其他运算符
in
not in
s = 'LeBron James is GOAT' print('is' in s )
print('Kobe' in s)
print('Kobe' not in s)
三. 输出
print('hello , world')
print(12345)
age = 18
print(age)
格式化输出
所谓的格式化输出即按照一定的格式输出内容。
| 格式符号 | 转换 |
|---|---|
| %s | 字符串 |
| %d | 有符号的十进制整数 |
| %f | 浮点数 |
age = 18
name = 'TOM'
weight = 75.5
student_id = 1
# 第一种方法
# 我的名字是TOM
print('我的名字是%s' % name)
print('我的学号是%d' % student_id)
print('我的体重是%f公斤' % weight)
print('我的体重是%.1f公斤' % weight)
print('我的名字是%s,今年%d岁了' % (name, age))
# 第二种方法
print('我的名字是{}了'.format(name))
print('我的体重是{}了'.format(weight))
print('我的名字是{}, 今年{}岁了'.format(name,age))
# 第三种方法(推荐)
print(f'我的名字是{name}了')
print(f'我的体重是{weight}了')
print(f'我的名字是{name}, 今年{age}岁了')
四. 输入
在Python中,程序接收用户输入的数据的功能即是输入。
- 当程序执行到
input,等待用户输入,输入完成之后才继续向下执行。 - 在Python中,
input接收用户输入后,一般存储到变量,方便使用。 - 在Python中,
input会把接收到的任意用户输入的数据都当做字符串处理。
password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
# <class 'str'>
print(type(password))
# 思考
password = input('请输入您的密码:')
print(f'您输入的密码是{password}')
print(type(password))
五. 内存管理机制
python采用的是基于值得内存管理方式,如果为不同得变量赋值为相同值,这个值在内存中只有一份,多个变量指向同一块地址
x=3
id(x) #用于显示变量的地址
#10417624
y=3
id(y)
#10417624
y=5
id(y)
#10417600
id(x)
#10417624
python会自动内存管理,对于没有任何变量指向的值,python会自动将其删除,它会自动跟踪所有的值,并自动删除不再有变量指向的值。
六. 代码编写规范
6.1 缩进
python程序是依靠代码块的缩进来体现代码之间的逻辑关系的。对于类定义、函数、定义、选择结构、
循环结构以及异常处理结构来说,行尾的冒号以及下一行的缩进表示一个代码块的开始,而缩进结束则把表示一个代码块的缩进量必须相同。
a,b,c=3,4,5
if a>b:
if a<c:
print(a)
else:
print(c)
else:
if b<C:
print(b)
else:
print(c)
print('OK')
在IDE开发环境中以4个空格为基本缩进单位
6.2 注释
注释对于程序的理解以及团队合作开发具有非常重要的意义。一个可维护性和可读性都很强的程序一般包含30%以上的注释
python中对于程序的注释有两种:
- 以符号#开始,表示本行#之后的内容为注释
- 包含在一对三引号(’’’…’’’)或("""…""")之间不属于任何语句的内容将被解释为注释
6.3 __name__属性
每个python脚本在运行的时候都有一个__name__属性,如果脚本作为模块导入,则其__name__属性的值被自动设置为模块名,如果脚本独立运行,则其__name__属性值被自动为__main__
print(__name__)main
利用python属性可以控制python代码的运行方式,可相当于其他代码的main函数
if __name__==__main__: print("Hello world")#这样程序直接执行会提示Hello world 而不运行其他代码
6.4 其他规范
- 每个Import语句只导入一个模块,尽量避免一次导入多个模块
- 如果一行语句太长,可以在行尾使用续行符“\”来表示下面紧接一行仍属于当前语句,当一般建议用括号来包含多行内容
- 使用必要的空格来增强代码的可读性。
- 适当使用异常处理结构提高程序容错性和健壮性但不能过多依赖异常处理结构,适当的显示判断是有必要的
Python程序基本知识的更多相关文章
- [daily][optimize] 一个小python程序的性能优化 (python类型转换函数引申的性能优化)
前天,20161012,到望京面试.第四个职位,终于进了二面.好么,结果人力安排完了面试时间竟然没有通知我,也没有收到短信邀请.如果没有短信邀请门口的保安大哥是不让我进去大厦的.然后,我在11号接到了 ...
- 用GDB排查Python程序故障
某Team在用Python开发一些代码,涉及子进程以及设法消除僵尸进程的需求.实践中他们碰上Python程序非预期退出的现象.最初他们决定用GDB调试Python解释器,查看exit()的源头 ...
- 浅谈 Python 程序和 C 程序的整合
源地址:http://www.ibm.com/developerworks/cn/linux/l-cn-pythonandc/ 概览 Python 是一种用于快速开发软件的编程语言,它的语法比较简单, ...
- 介绍Python程序员常用的IDE和其它开发工具
概述 “工欲善其事,必先利其器”,如果说编程是程序员的手艺,那么IDE就是程序员的吃饭家伙了. IDE 的全称是Integration Development Environment(集成开发环境), ...
- 【Python】 零碎知识积累 II
[Python] 零碎知识积累 II ■ 函数的参数默认值在函数定义时确定并保存在内存中,调用函数时不会在内存中新开辟一块空间然后用参数默认值重新赋值,而是单纯地引用这个参数原来的地址.这就带来了一个 ...
- python笔记:#002#第一个python程序
第一个 Python 程序 目标 第一个 HelloPython 程序 Python 2.x 与 3.x 版本简介 执行 Python 程序的三种方式 解释器 -- python / python ...
- 第一个 Python 程序
## 目标 * 第一个 `HelloPython` 程序* `Python 2.x` 与 `3.x` 版本简介* 执行 `Python` 程序的三种方式 * 解释器 —— `python` / ` ...
- 2.第一个python 程序
第一个python程序 一..python程序的编写步骤 1.创建 xxx.py文件(文件名不要中文) 文件名要以py为扩展名,因为导入的时候其他扩展名会报错.如果不导入的情况可以不限制扩展名. 2 ...
- 给大家一些改善 Python 程序的 91 个建议
读了一本还不错的书「编写高质量代码改善 Python 程序的 91 个建议」,大多数的建议是真心不错,我虽然写python也有3年多了,但是有些地方确实没去注意过,特地整理了一下,给大家参考. 我已经 ...
随机推荐
- Jvm内存回收
一.什么内存会被回收 可达性分析算法 通过一系列的GC ROOT的对象作为超始点,从这些节点开始向下搜索,搜索所走的路径称为"引用链",当一个对象到GC ROOT之间没有任何引用链 ...
- IDE添加自定义注释
前言:最近在找IDE自定义模板注释时,十分不愉快,找了很久,才找到适合自己的,故记录一下 一.IDE自定义类注释: 1:打开自定义模板界面,并添加自定义内容: 2:新建类,效果如下 备注: ...
- Redis-46面试题
1.什么是 Redis?简述它的优缺点? Redis 的全称是:Remote Dictionary.Server,本质上是一个 Key-Value 类型的内存数据库,很像 memcached,整个数据 ...
- The official raywenderlich.com Objective-C style guide.
The official raywenderlich.com Objective-C style guide. This style guide outlines the coding convent ...
- tarjan——有向图、无向图
强连通块只存在于有向无环图DAG中 实际上low[i]的理解是:一个强连通块在dfs搜索树中子树的根节点 //把一个点当成根提溜出来,抖搂抖搂成一棵树 void dfs(int u) { //记录df ...
- Solution -「CF 1586F」Defender of Childhood Dreams
\(\mathcal{Description}\) Link. 定义有向图 \(G=(V,E)\),\(|V|=n\),\(\lang u,v\rang \in E \Leftrightarr ...
- Solution -「LOCAL」「cov. HDU 6816」折纸游戏
\(\mathcal{Description}\) Link(削弱版). \(n\) 张纸叠在一起对折 \(k\) 次,然后从上到下为每层的正反两面写上数字,求把纸重新摊平后每张纸上的数字序列 ...
- HashSet源码学习
一.介绍 1.HashSet 2.HashSet和HashMap的区别 1.相同点 HashSet 内部使用 HashMap 存储元素,对应的键值对的键为 Set 的存储元素,值为一个默认的 Obje ...
- [LeetCode]13.罗马数字转整数(Java)
原题地址: roman-to-integer 题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M ...
- Java 使用jcifs读写共享文件夹报错jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/10.1.*.*
Q:使用jcifs读写Windows 10 共享文件夹中的文件报jcifs.smb.SmbException: Failed to connect: 0.0.0.0<00>/10.1.*. ...