python2:数据、运算符与表达式

一,数据类型:
数据类型是计算机对现实中数据的抽象,不同的数据类型其存储格式、数据范围、

计算要求都各不相同。

Python中的数据类型可以分为以下三类

基础类型:字符串(str)、整数(int)、实数(float)、布尔(bool)、复数(complex)

扩展类型:列表(list)、元组(tuple)、字典(dict)、集合(set)

自定义类型:类(class)

1,字符串类型:

处理文本数据,或者是序列数据,我常用str及字符串对象处理;

单引号字符和双引号字符一般嵌套使用;

三引号的字符成对出现连用,主要是用于注释

2,转义字符

3,整数类型:

# 十进制整数
decimal_number = 101

# 八进制整数
octal_number = 0o101  # 等价于十进制的65

# 十六进制整数
hexadecimal_number = 0x101  # 等价于十进制的257

# 二进制整数
binary_number = 0b101  # 等价于十进制的5

4,实数类型:

5,布尔类型:

6,复数类型:

科学计算见我后续博客的numpy章节

二,变量与赋值

1,变量与标识符:

1个变量的3个基本属性:a=10,对应 名字=值(值一旦给出就包含了类型),所以给出3属性的过程实际上就是定义的过程。

有些学生经常把赋值(=)和判断相等()搞混,我让他们不要过度依赖于vscode中的checker插件,就是这么来区分:
你定义一个最基础变量的时候是赋值,用的句式就是a=10,而不是a
10,所以=

是赋值,==是判断相等

2,关键词:

import keyword
print(keyword.kwlist)

#['False', 'None', 'True', 'and', 'as', 'assert', 'async', 
# 'await', '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,标识符:其实就是变量名

4,赋值和动态类型:

5,赋值操作的本质

变量是虚的,只有实际的数据类型对象(比如说整数、字符串等定义时候在右边的值)是实的,python只是为在右边的值在内存中开了空间、存放进去对象,然后左边的变量实际上只是指向了这个值的地址(可以简单的理解为变量也有一个内存空间,里面放的是一个指针,指针内容指向其对应的值)

我们对python变量的定义是什么:名字=值(暗示类型)

无论是定义还是二次修改定义,实际上只是修改这个变量中存放的指针内容,不断的修改其对应的内存对象指向

6,强类型语言:

三,运算符与表达式:
1,运算符和表达式:
操作数和操作符(运算符)构成了表达式

2,运算符分类:

(1)算术运算符:

学生经常容易搞混的就是除号、地板除以及求余,

1个简单的例子,只要能口述清楚下面这个例子的值,基本上就搞清楚了

print(5 / 2, 5 // 2, 5 % 2)
print(5 * 2, 5 ** 2)
print(5 / 2.0, 5 // 2.0, 5 % 2.0)
print(5 * 2.0, 5 ** 2.0)
print(5 / -2, 5 // -2, 5 % -2)
print(-5 / -2, -5 // -2, -5 % -2)
print(-5 / 2, -5 // 2, -5 % 2)

除号(简单除法、地板除)、取余最常见的考法就是拆分一个多位数的每位,颠来倒去考

x = 123
a = x // 100  #对100地板除
b = x // 10 % 10 #对10地板除再对10取余
c = x % 10 #对10取余
y = c * 100 + b * 10 + a
print(y)

当然后面教了函数,就可以使用递归函数处理,实际上就是经典的整数倒序问题。

递归函数编写实际上就2个要点:

首先判断递归终止条件(什么时候不调用递归函数,即什么时候终止)

不终止就继续展开递归(也就是调用自身,但是要体现出“展开”的思维,实际上就是将原问题化为和原问题形式相似但规模更小得问题,也就是分解)

def back_order(n):
    #首先需要判断递归终止的条件,也就是最后一次取余得到0的时候(一般写法上就是判断 if n是否不递归终止)
    if n>0:
        print(n%10,end="") #打印对10取余
        back_order(n//10)  #递归对10地板除
back_order(123)
print("\n")
back_order(7898230)

print(round(3.1415926, 2)) # 四舍五入函数,保留2位小数
print(divmod(7, 2)) # 返回商和余数,div和mod,返回的是元祖
print(type(divmod(7,2)))

print(abs(-2)) # 返回绝对值
print(pow(2, 3)) # 幂运算
print(max(3, 1, 2)) # 最大值
print(min(3, 1, 2)) # 最小值
print(sum((3, 1, 2))) # 总和,注意参数格式,是2个括号,
# print(sum(3,1,2)) 格式错误,sum() takes at most 2 arguments (3 given)

import math
print(dir(math)) # 列出模块所有的功能和数据,同理print(dir(numpy),dir(pandas))
print(math.sin(math.pi / 2)) #模块.函数(参数)
print(math.ceil(3.5)) # 向上取整

(2)关系运算符:

ord函数和chr函数互逆

(3)逻辑运算符

是4的倍数但不是100的倍数,或者是400的倍数

(4)成员运算符:

(5)身份运算符:

此处联想变量赋值的实质,是将变量指向值的内存地址

3,类型转换:

可以类比R中的函数as.numeric()等

如果要参与运算需要使用数据类型转换

4,短路逻辑运算:

输入字符就是1,1 or “x”就是1也就是用户名字符

不输入就是“”空(0),0 or “x”就是x也就是匿名用户

不输入就是:

三,python代码规范:
1,注释:

2,缩进:tab

3,续行:

基本同shell

4,一行多语句:

5,格式化:

如何一次获得多个数据的输入:

#单个输入
x=float(input(''))

#多个输入,对输入内容进行切割(空格切割),使用map循环使用float
x, y = map(float, input('').split())

6,python简单格式化输出

再过一遍基础题库巩固:

https://www.luogu.com.cn/training/100#problems

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/942045.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

tortoisegit推送失败

tortoisegit推送失败 git.exe push --progress -- "origin" testLidar:testLidar /usr/bin/bash: gitgithub.com: No such file or directory fatal: Could not read from remote repository. Please make sure you have the correct access rights and the reposit…

pyinstaller打包资源文件和ini配置文件怎么放

1.如果出现无法成功完成操作,因为文件包含病毒或潜在的垃圾软件,说明你的版本太高,更换pyinstaller版本。 pip install pyinstaller6.2.02.一开始打包的时windows下尽量选择打成文件夹的并且要是带命令行窗口的,容易查看错误。 …

autMan奥特曼机器人-autMan的PHP环境

直装版请自行安装php环境。 docker版本预置了php环境,如下图: 如果使用插件"test php"测试环境时,实时日志有报错如下: 可进入终端,输入两条命令 apk add curl apk add php-curl

uniApp打包H5发布到服务器(docker)

使用docker部署uniApp打包后的H5项目记录,好像和VUE项目打包没什么区别... 用HX打开项目,首先调整manifest.json文件 开始用HX打包 填服务器域名和端口号~ 打包完成后可以看到控制台信息 我们可以在web文件夹下拿到下面打包好的静态文件 用FinalShell或…

【Leetcode】1705. 吃苹果的最大数目

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接🔗 有一棵特殊的苹果树,一连 n n n 天,每天都可以长出若干个苹果。在第 i i i 天,树上会长出 a p p l e s [ i ] apples[i] apples[i] 个苹果&a…

4、数据结构与算法解析(C语言版)--栈

栈的数据存储遵循“后进先出的规则”&#xff0c;这在计算机里面是非常有用的&#xff0c;比如word等编辑软件的"撤销"功能&#xff0c;就是使用栈进行实现的。 1、创建项目 main.h #ifndef _MAIN_H #define _MAIN_H#include <stdio.h> #include <stdlib.…

施耐德变频器ATV320系列技术优势:创新与安全并重

在工业自动化领域&#xff0c;追求高效、安全与智能已成为不可阻挡的趋势。施耐德变频器ATV320系列凭借其强大的设计标准和全球认证&#xff0c;成为能够帮助企业降低安装成本&#xff0c;提高设备性能的创新解决方案。 【全球认证&#xff0c;品质保障】ATV320 系列秉持施耐德…

【软考高级】系统架构设计师复习笔记-精华版

文章目录 前言0 系统架构设计师0.1 考架构还是考系分0.2 架构核心知识0.3 架构教材变化 1 计算机操作系统1.1 cpu 组成1.2 内核的五大功能1.3 流水线技术1.4 段页式存储1.5 I/O 软件1.6 文件管理1.7 系统工程相关 2 嵌入式2.1 嵌入式技术2.2 板级支持包&#xff08;BSP&#xf…

并发编程(19)——引用计数型无锁栈

文章目录 十九、day191. 引用计数2. 代码实现2.1 单引用计数器无锁栈2.2 双引用计数器无锁栈 3. 本节的一些理解 十九、day19 上一节我们学习通过侯删链表以及风险指针与侯删链表的组合两种方式实现了并发无锁栈&#xff0c;但是这两种方式有以下缺点&#xff1a; 第一种方式…

大恒相机开发(2)—Python软触发调用采集图像

大恒相机开发&#xff08;2&#xff09;—Python软触发调用采集图像 完整代码详细解读和功能说明扩展学习 这段代码是一个Python程序&#xff0c;用于从大恒相机采集图像&#xff0c;通过软件触发来采集图像。 完整代码 咱们直接上python的完整代码&#xff1a; # version:…

步进电机直线插补

基础原理 代码部分

数据结构经典算法总复习(上卷)

第一章&#xff1a;数据结构导论 无重要考点&#xff0c;仅需了解时间复杂度。 第二章&#xff1a;线性表 1.获得线性表第i个元素 void GetElem_sq(SqList L, int i, ElemType &e) {if (i<1 || i>L.length) ErrorMsg("Invalid i value"); //注意错误监…

Windows11 安装 Ubuntu-20.04,同时安装配置 zsh shell,配置 git 别名(alias),大大提高开发效率

背景&#xff1a;家里配置了一台 Windows 电脑&#xff0c;有时候需要用到 vscode 开发测试一些代码&#xff0c;在使用过程中发现原生 windows 敲代码不是很友好&#xff0c;于是想到配置 wsl&#xff0c;安装 Ubuntu&#xff0c;并安装配置 zsh shell&#xff0c;同时配置 gi…

PE文件结构

PE文件是Windows系统下可执行文件的总称&#xff0c;英文全称 Portable Executable 可移植的可执行文件&#xff0c;常见的有exe、dll、sys、com、ocx 对于学习反&#xff08;木马、免杀、病毒、外挂、内核&#xff09;&#xff0c;了解PE文件结构是非常有必要且非常非常重要的…

Helm 官方脚本

Helm 官方脚本 #!/usr/bin/env bash# Copyright The Helm Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # …

JSON 系列之1:将 JSON 数据存储在 Oracle 数据库中

本文为Oracle数据库JSON学习系列的第一篇&#xff0c;讲述如何将JSON文档存储到数据库中&#xff0c;包括了版本为19c和23ai的情形。 19c中的JSON 先来看一下数据库版本为19c时的情形。 创建表colortab&#xff0c;其中color列的长度设为4000。若color的长度需要设为32767&a…

C语言-结构体内存大小

#include <stdio.h> #include <string.h> struct S1 { char a;//1 int b;//4 char c;//1 }; //分析 默认对齐数 成员对齐数 对齐数(前两个最小值) 最大对齐数 // 8 1 …

PyTorch 神经网络回归(Regression)任务:关系拟合与优化过程

PyTorch 神经网络回归&#xff08;Regression&#xff09;任务&#xff1a;关系拟合与优化过程 本教程介绍了如何使用 PyTorch 构建一个简单的神经网络来实现关系拟合&#xff0c;具体演示了从数据准备到模型训练和可视化的完整过程。首先&#xff0c;利用一维线性空间生成带噪…

渐开线齿轮和摆线齿轮有什么区别?

摆线齿形与渐开线齿形的区别 虽然在比对这两种齿形&#xff0c;但有一个事情希望大家注意&#xff1a;渐开线齿轮只是摆线齿轮的一个特例。 &#xff08;1&#xff09;摆线齿形的压力角在啮合开始时最大&#xff0c;在齿节点减小到零&#xff0c;在啮合结束时再次增大到最大…

Debian 12 安装配置 fail2ban 保护 SSH 访问

背景介绍 双十一的时候薅羊毛租了台腾讯云的虚机, 是真便宜, 只是没想到才跑了一个月, 系统里面就收集到了巨多的 SSH 恶意登录失败记录. 只能说, 互联网真的是太不安全了. 之前有用过 fail2ban 在 CentOS 7 上面做过防护, 不过那已经是好久好久之前的故事了, 好多方法已经不…