当前位置: 首页 > news >正文

python 速成指南

第一节. 过程式  python

python 的一个特点是不通过大括号 {} 来划定代码块,而是通过缩进。如果和 C/C++ 类比的话,就是在左括号的地方不要换行,然后用一个冒号 (:) 替代, C/C++ 大括号内部的东西,缩进一个 tab  或者几个空格都可以(但需要保持一致),比如:

if (x < 2):

print 'x < 2' elif (x > 2):

print 'x > 2'

else:

print 'bingo!' print 'x = 2'

注意两点:一是 python 语句结尾处没有分号(;)作为结束标记。二是和 C/C++ 不同,没有

else if,而是用 elif 替代,相当于可以少打几个字符吧。

类型系统

比如 int,string 等,type() 可以返回数据的类型,如:

>>> type(1)

<type 'int'>

>>> type('123')

<type 'str'>

python 尽管在声明变量的时候不指定类型,但变量其实是有类型的,用 c++0x 的概念来表达的话,实际上 python 的变量好像都是 auto 的,类型自动根据赋值推导出来。所以这样:

name = 'ddh' verb = ' is '

noun = ' good man'

sentence = name + verb + noun

没有问题,但:

name = 'cyberscorpio' age = 32

sentence = name + age

就会引发异常,因为字符串和数字不能直接相加。

可以通过 int() 或者 str() 强转类型,如上一句改成: sentence = name + str(age)

就不会有问题了。

容器类型

python 提供好用的两个容器:list 和 dict。插句题外话,其实最好用的容器还是 PHP 提供的关联数组,一个数组就包括了 python 中 list 和 dict 的全部功能,实在是很赞。

list

类似 array 的概念,例如: lst = list() lst.append('123') lst.append('456') lst.append(1000) print lst

for x in lst:

print x, ' type is ', type(x)

注意 list 内的数据可以是不同类型的,这一点会很方便。上面的输出是:

>>> print lst

['123', '456', 1000] # 注意里是 list 的字面表示方法,如 lst = ['123', '456', 1000]lst 一个 list

>>> for x in lst:

... print x, ' type is ', type(x)

...

123  type is  <type 'str'>

456  type is  <type 'str'>

1000 type is <type 'int'> # 这个是整型的数据

dict

类似于 std::map 的概念,当然,和 list 类似,dict 的 key  和 value  不要求是同一种类型。如:

dct = dict()

dct['name'] = 'cyberscorpio' dct['age'] = 32

dct['sex'] = 'male' print dct

for k in dct:

print k, ' is ', dct[k]

输出为:

>>> print dct

{'age': 32, 'name': 'cyberscorpio', 'sex': 'male'} # <

相关文章:

python 速成指南

第一节. 过程式 python python 的一个特点是不通过大括号 {} 来划定代码块,而是通过缩进。如果和 C/C++ 类比的话,就是在左括号的地方不要换行,然后用一个冒号 (:) 替代, C/C++ 大括号内部的东西,缩进一个 tab 或者几个空格都可以(但需要保持一致),比如: if (x <…...

多重示例详细说明Eureka原理实践

Eureka原理&#xff08;Eureka Principle&#xff09;是指在长时间的思考和积累之后&#xff0c;通过偶然的瞬间获得灵感或发现解决问题的方法的一种认知现象。这个过程通常包括三个主要阶段&#xff1a;准备阶段、潜伏期以及突然的灵感爆发。下面详细说明Eureka原理的实践步骤…...

Qt下让程序只运行一个实例,避免重复打开

参考 【实现QT单例程序 QSystemSemaphore QSharedMemory】 做了一点点更改&#xff0c;主要是在openEuler上用时遇到的一点问题。 QSharedMemory *unimem nullptr; void checkExist() {QString memName "SingleApp"; // 注意这名字要每个工程不一样&#xff0c;否…...

考研交流平台设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图详细视频演示技术栈系统测试为什么选择我官方认证玩家&#xff0c;服务很多代码文档&#xff0c;百分百好评&#xff0c;战绩可查&#xff01;&#xff01;入职于互联网大厂&#xff0c;可以交流&#xff0c;共同进步。有保障的售后 代码参考数据库参…...

哈希表--有效的字母异位词

给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 示例 1: 输入: s "anagram", t "nagaram" 输出: true示例 2: 输…...

GC终结标记 SuspendEE 是怎么回事

一&#xff1a;背景 1. 讲故事 写这篇是起源于训练营里有位朋友提到了一个问题&#xff0c;在 !t -special 输出中有一个 SuspendEE 字样&#xff0c;这个字样在 coreclr 中怎么弄的&#xff1f;输出如下&#xff1a; 0:000> !t -special ThreadCount: 3 UnstartedTh…...

Ubuntu 中GCC交叉编译工具链安装

​ Ubuntu 自带的 gcc 编译器是针对 X86 架构的&#xff0c;如果要编译的是 ARM 架构的代码&#xff0c;就需要一个在 X86 架构的 PC 上运行&#xff0c;可以编译 ARM 架 构代码的 GCC 编译器&#xff0c;这个编译器就叫做交叉编译器&#xff0c;总结一下交叉编译器就是&#x…...

JEXL(Java Expression Language)用法概览

JEXL&#xff08;Java Expression Language&#xff09;是一个用于在Java应用程序中解析和执行表达式的库。JEXL的设计目的是通过提供一种类似于脚本语言的语法&#xff0c;使得可以在应用程序中动态地计算表达式的值。JEXL常用于模板引擎、规则引擎和配置文件等场景。 下面介…...

NC 完全二叉树结点数

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 给定一棵完全…...

点灯案例优化(二) 利用位运算修改特定位

前面&#xff0c;我们对点灯代码进行了第一次优化&#xff0c;效果如下 尽管第一次优化以后代码可读性确实高了不少&#xff0c;也看起来更加简洁&#xff0c;但是&#xff0c;这里仍旧存在一个很严重的问题&#xff1a;就在每一个表达式右边&#xff0c;我们给寄存器的数据赋值…...

【C++备忘录】

记录一些C比较好用的代码块&#xff0c;方便自个查看。 使用std::copy 快速打印序列 #include <iostream> #include <algorithm> #include <iterator>int main() {int a[5] { 1, 2, 3, 4, 5 };copy(begin(a), end(a), ostream_iterator<int>(cout, …...

java编程 斐波拉契数列算法集锦【斐波拉契数列】【下】【集合类】【Stream函数式编程】

斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;是一个非常经典的递归问题。斐波那契数列的算法描述&#xff1a; 斐波那契数列&#xff0c;一个令人着迷而又充满神秘色彩的数字序列&#xff0c;它以0和1作为起始&#xff…...

智慧园区三维可视化平台

背景 随着物联网、人工智能等新一代信息技术的发展&#xff0c;数字孪生技术逐渐成为实现这一目标的关键工具。数字孪生技术能够对物理世界进行高精度、全要素的映射&#xff0c;并实时动态反映其变化情况&#xff0c;从而为园区提供精准的管理和服务。 方案简介 智慧园区数字…...

Redis 有序集合【实现排行榜】

使用 Redis 的 Sorted Set 数据结构可以非常高效地实现实时排行榜功能。Sorted Set 允许将元素按分数进行排序&#xff0c;同时支持插入、删除和查询操作&#xff0c;且这些操作的时间复杂度较低&#xff0c;非常适合处理高并发的场景。 实现思路 插入操作&#xff1a;当用户…...

ORACLE数据库管理系统介绍

1.ORACLE的特点: 可移植性 ORACLE采用C语言开发而成,故产品与硬件和操作系统具有很强的独立性。从大型机到微机上都可运行ORACLE的产品。可在UNIX、DOS、Windows等操作系统上运行。可兼容性 由于采用了国际标准的数据查询语言SQL,与IBM的SQL/DS、DB2等均兼容。并提供读取其它…...

C# 中Linq探讨 Or条件拼接

在C#中&#xff0c;没有直接内置于.NET Core或.NET Framework中的NuGet包能够直接“拼接”LINQ的OR条件&#xff0c;因为LINQ本身设计为一种声明式编程模型&#xff0c;用于查询数据集合。然而&#xff0c;你可以通过一些方式来实现多个条件以OR逻辑组合的效果&#xff0c;而不…...

有关应用层面试题有关库的思维导体

面试题目&#xff1a; TCP通信中3次握手和四次挥手&#xff1f; 答&#xff1a; 第一次握手&#xff1a;客户端发送SYN包&#xff08;SYN1, seq0&#xff09;给服务器&#xff0c;并进入SYN_SENT状态&#xff0c;等待服务器返回确认包。第二次握手&#xff1a;服务器接收到S…...

记一次 SAP BP 编号范围错误引发的一个问题 GET_NRIV_LINE

本来想着循着错误提示去排查&#xff0c;但是还是想看看业务发生了什么&#xff0c;他们的操作是否有问题&#xff0c;不经意间发现 号码段是有问题的&#xff0c;由此大概可以判断是他们编号范围和类型之间的问题 角色和分组是否一致的&#xff0c;如果不一致就发生了以上错误…...

(17)ELK大型储存库的搭建

前言&#xff1a; els是大型数据储存体系&#xff0c;类似于一种分片式存储方式。elasticsearch有强大的查询功能&#xff0c;基于java开发的工具&#xff0c;结合logstash收集工具&#xff0c;收集数据。kibana图形化展示数据&#xff0c;可以很好在大量的消息中准确的找到符…...

每日一问:Kafka消息丢失与堆积问题分析(简化版)

Kafka 消息系统问题解析 在本篇博客中&#xff0c;我们将深入探讨 Kafka 中常见的两大问题&#xff1a;消息丢失和消息堆积。首先&#xff0c;我们将简要介绍 Kafka 的基本工作原理&#xff0c;随后分别分析消息丢失和堆积的原因&#xff0c;并提供针对性的解决方案。 关于其详…...

Playnite完整指南:高效统一你的跨平台游戏库管理体验

Playnite完整指南&#xff1a;高效统一你的跨平台游戏库管理体验 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址: http…...

汽车电子实战指南:从零到一,用CANdb++ Editor构建你的首个DBC文件

1. 认识DBC文件&#xff1a;汽车电子的"通讯词典" 第一次接触DBC文件时&#xff0c;我把它想象成汽车电子系统的"通讯词典"。就像不同国家的人需要字典来理解彼此的语言&#xff0c;汽车里的各个ECU&#xff08;电子控制单元&#xff09;也需要DBC文件来解…...

Wormhole NFT Bridge 详解:跨链数字资产转移的完整方案

Wormhole NFT Bridge 详解&#xff1a;跨链数字资产转移的完整方案 【免费下载链接】wormhole A reference implementation for the Wormhole blockchain interoperability protocol. 项目地址: https://gitcode.com/gh_mirrors/wo/wormhole Wormhole NFT Bridge 是 Wor…...

5分钟搞定Windows和Office永久激活:智能KMS工具完全指南

5分钟搞定Windows和Office永久激活&#xff1a;智能KMS工具完全指南 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗&#xff1f;Office文档突然变成…...

鸿蒙与Kotlin跨平台开发中的性能与功耗深度优化实践

摘要:本文聚焦KMP(Kotlin Multiplatform)与鸿蒙(ArkTS)集成开发中的性能与功耗优化,结合架构设计、系统级调优及实战案例,提供可落地的解决方案。全文涵盖核心优化领域:内存管理、渲染管线、跨进程通信、功耗模型分析等,适用于中大型项目迁移与重构。 一、KMP跨平台模…...

Linux僵死IO与不可中断睡眠分析

Linux僵死IO与不可中断睡眠分析在 Linux 系统里&#xff0c;有一类问题特别让人困惑&#xff1a;进程存在、CPU 不高&#xff0c;但命令卡住、服务停不下来、甚至 kill 也无效。很多这类现象最终都与不可中断睡眠状态有关&#xff0c;尤其常见于 IO 阻塞场景。中级阶段需要理解…...

基于LLM与向量数据库的家庭智能体助手:架构、部署与场景实践

1. 项目概述&#xff1a;一个面向家庭的智能体助手最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“Home-agent-assistant”。光看名字&#xff0c;你可能会觉得这又是一个智能家居控制中心&#xff0c;或者一个简单的语音助手。但当我深入去研究它的代码和设计理念后&am…...

安卓手机缓存视频救星:手把手教你将腾讯课堂的.m3u8.sqlite文件转成MP4

安卓手机腾讯课堂缓存视频解密实战&#xff1a;从.m3u8.sqlite到MP4全流程指南 你是否曾在腾讯课堂APP下载了付费课程&#xff0c;却发现缓存文件是一堆无法直接播放的.m3u8.sqlite格式&#xff1f;这些加密文件既不能备份到电脑&#xff0c;也无法在其他设备上观看。本文将彻底…...

现代C++中的编译期反射替代思路

现代C中的编译期反射替代思路C 长期缺乏完整标准反射能力&#xff0c;但工程上依然经常需要“遍历字段、生成元信息、自动序列化、自动注册”。在正式反射广泛可用之前&#xff0c;开发者通常通过宏、模板特化、tuple 适配和代码生成等方式实现替代方案。一种常见思路是手工提供…...

RP2040内置温度传感器:零成本实现精准温度监测与校准

1. 项目概述&#xff1a;为什么要在Pico上折腾内置温度传感器&#xff1f;如果你手头有一块树莓派Pico&#xff0c;或者任何基于RP2040芯片的开发板&#xff0c;你可能已经用它点亮过LED、驱动过电机&#xff0c;甚至玩过一些简单的通信协议。但你是否知道&#xff0c;就在这块…...