学习笔记3

news/发布时间2024/8/24 19:05:58

程序设计语言必备要素和技能

对于Python、C和Java这三门常见的编程语言,它们都有一些共同的必备要素和技能。

  1. 语法和语义:编程语言的语法和语义是这个语言的基础。这包括了熟悉变量、数据类型、运算符、控制流程等基本语法结构,以及了解编程语言的特性和约束。

  2. 数据结构与算法:了解常见的数据结构和算法对于解决问题和优化代码至关重要。掌握如数组、链表、树、图等数据结构,以及排序、搜索、动态规划等常用算法,能够帮助你提高代码的效率和质量。

  3. 编程范式:熟悉并理解不同的编程范式,如面向对象编程、函数式编程等。掌握不同的设计模式和技巧有助于开发出可靠、可维护的代码。

  4. 调试和故障排除:能够识别和解决常见的编程错误和异常是一项重要的技能。学会使用调试工具和技术,能够追踪和修复代码中的问题。

sh编程

sh是一个解释程序,逐行读取sh脚本文件并直接执行这些行。如果行是可执行命令且为内置命令,那么sh可直接执行。否则,它会复制一个子进程来执行命令,并等待子进程终止后再继续,这与它执行单个命令行完全一样。在sh脚本中,每个变量都是字符串,因此不需要类型。sh脚本不需要main函数,第一个可执行语句是程序的入口点。

  1. 语法语义:
  • 命令行参数:通过位置参数$0、$1、$2等访问命令行参数。10n参数必须称为${10}${n}。通常$0是程序名本身,$1到$n是程序参数。

  • 特殊字符:在sh中特殊字符$表示替换。sh有许多特殊字符,如$、/、*、>、<。要按原样使用它们,必须带有单引号或反引号\。

  • 变量:sh中使用变量存储数据,可以使用等号赋值,例如:name="John"。使用变量时需要在变量名前使用美元符号,例如:echo $name。如果A是一个变量,则$A是变量的值。

  • 输入输出:可以通过read语句接收用户输入,使用echo语句输出文本。
    name="John" # 定义name变量并赋值为John
    age=25 # 定义age变量并赋值为25
    echo "$name is $age years old." # 输出John is 25 years old.

2.sh命令:

sh有许多内置命令,这些命令由 sh执行,不需要创建一个新进程。下面列出一些常用的内置sh命令。

  • .file:读取并执行文件。
  • break[n]:从最近的第n个嵌套套循环中退出。
  • cd[dirname]:更换目录。
  • continue[n]:重启最近的第n个嵌套循环。
  • eval[arg…]:计算一次参数并让sh执行生成的命令。
  • oexec [arg…]:通过这个sh执行命令,sh 将会退出。
  • exit[n]:使sh 退出,退出状态为n。
  • export [var…]:将变量导出到随后执行的命令。
  • read [var …]:从 stdin 中读取一行并为变量赋值。
  • set [arg … ]:在执行环境中设置变量。
  • shift:将位置参数 $2 $3 …. 重命名为 $1 $2 …。
  • trap [arg] [n]:接收到信号n后执行参数。
  • umask [ddd]:将掩码设置为八进制数 ddd 的。
  • wait[pid]:等待进程pid,如果没有给出 pid,则等待所有活动子进程。
  1. sh控制语句:
    条件判断:可以使用if语句进行条件判断,语法为if [ 条件 ]; then ... fi。常见的判断条件包括:
    (1)字符串比较
    等于:=,例如:if [ "$str1" == "$str2" ],表示变量str1的值是否等于变量str2的值。
    不等于:!=,例如:if [ "$str1" != "$str2" ],表示变量str1的值是否不等于变量str2的值。
    小于:<,按照字典顺序比较。例如:if [ "$str1" \< "$str2" ],表示变量str1的值是否在字典中小于变量str2的值。
    大于:>,用于判断一个字符串是否大于另一个字符串(按照字典顺序比较)。例如:if [ "$str1" \> "$str2" ],表示变量str1的值是否在字典中大于变量str2的值。

(2)整数比较
运算符等于-eq、不等于-ne、小于-lt、大于-gt、小于等于-le、大于等于-ge将参数作为整数比较。
(3)需要注意的是,字符串比较时要使用双引号将字符串变量括起来,运算符前后需要有空格,并且在进行小于和大于比较时,需要使用反斜杠(\)进行转义。此外,还可以使用-n来判断字符串是否非空,例如:if [ -n "$str" ],表示变量str是否非空。等。

循环:可以使用for、while等循环语句来实现重复执行一系列操作。
for语句
for VARIABLE in string1 string2 ... stringn
do
commands
done
while语句
while [ condition ]
do
commands
done

4.sh函数
sh函数定义为:
func()
{
# function code
}
必须在任何可执行语句之前定义sh脚本中的所有函数。sh脚本中无法声明函数原型。
sh语句
func s1 s2 ... sn

5.sh调试
sh脚本可由带有 -x选项的子sh运行,以进行调试,如:
bash -x mysh

苏格拉底挑战

针对sh程序苏格拉底挑战



针对学习一门程序设计语言有哪些必备的要素和技能知识点的苏格拉底挑战




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

如若内容造成侵权/违法违规/事实不符,请联系连锁易网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Redis搭建集群架构

使用docker搭建 6.x 版本以后的镜像 docker 支持部署集群模式,由于 Redis 要求集群至少要有三个主节点,因此本次测试搭建了三主三从的 Redis 集群。 不基于 Host 网络模式 配置docker-compose.yml文件 version: "3"networks:redis-cluster:driver: bridgeipam:conf…

1.多线程(实现方式,常用方法,生命周期)

多线程(实现方式,常用方法,生命周期) 概述:可以让程序同时做多件事情; 可以提高效率; 只要你想让多个事情同时运行就需要用到多线程;如: 软件中的耗时操作、所有的聊天软件、所有的服务器‘并发和并行:并发:在同一时刻,有多个指令在单个CPU上交替执行; 并行:在同一时刻,有…

STM32之步进电机

步进电机 学习资料:野火电机应用开发实战指南 双极性步进电机(上):控制模式 |文章 | MPS (monolithicpower.cn) 爱上半导体---步进电机的工作原理步进电机的介绍 步进电机又称为脉冲电机,是一种将电脉冲信号转换成相应的角位移或线位移的电动机。每输入一个脉冲信号,转子就…

封装全局异常处理

目录1 定义错误码类2 定义业务异常类3 全局异常处理器4 使用5 前端请求效果总结 1 定义错误码类 ​ 可以定义各种错误码枚举,比如业务,系统相关的报错信息 /*** 错误代码* 错误码** @author leovany* @date 2023/09/23*/ public enum ErrorCode {SUCCESS(0, "success&qu…

根据周数计算月

问题:如何根据周数计算月 假设:以每周第一天为标准,一周从周一开始计 函数公式解决:=MONTH(DATE(A2,1,B2*7-WEEKDAY(DATE(A2,1,1),3))) 以周数乘以7计算出当年第一周的最后一天,再一个数推到元旦。所减的数字从周一至周日依次是0-6,正好可以用Weekday提取,第二参数用3。…

基于Python + SnowNLP实现一个文本情感分析系统

当你浏览社交媒体、新闻或任何数字内容时,你有没有想过背后的技术是如何分析和理解这些文本的情感的?有没有想过在数百万条评论、帖子或文章中,如何快速地识别出其中的积极和消极情绪?在这篇文章中,我们将揭示其中的奥秘,并教你如何使用Python和SnowNLP来轻松地实现一个文…

使用sqoop export命令将hive数据导入mysql

描述一下 因为我前两天的测试里面,用的是另外一种方法,所以今天想要尝试一下sqoop export的方法,这个方法我之前也试过,但是一直报错,但是!我又来啦!!! 相关步骤 自己设置一个数量不多的csv文件:然后按照之前的步骤:上传,导入数据库:然后在mysql里面同时创建一个与…

主流大语言模型的技术原理细节

1.比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。2. 大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、混合精度训练、激活重计算技术、…

为什么 Rust 备受开发者青睐?

引子 作为一名敏锐的前端开发者,您可能早已对 Rust 有所耳闻,毕竟近几年,使用 Rust 开发的前端构建工具每经发布,其卓越的性能数据总是能带来社区的一阵惊叹。图片来源:https://swc.rs/ 例如 SWC 就在其官网宣称在单线程上的执行速度是传统代码转译工具 Babel 的 20 倍。如…

第6天 中断处理

GDT初始化 为了兼容前几代的CPU,所以GDT段描述符看起来有些不规整,让人难以理解,GDT段描述符中存储的内容和第五天讲的一样: 分为开始地址、段大小、段属性。我们实际处理是分割成以下几个部分:段基址也就是段开始地址被拆成了三部分,段界限也就是段大小被拆成了三部分,剩…

设置ubuntu server 在 virtual box下的分别率

首先进入 virtual box的ubuntu server 虚拟机,然后通过下面的命令重启系统shutdown -r now在启动过程中按shift进入GRUB选择菜单,点击c进入命令行, 输入vbeinfo显示可用的分辨率,并记录下来

《从零开始的 Zig 编程》Zig 是什么?如何构建并运行一个 Zig 项目

Zig 概述 从现在开始我们来一起学习一门新的语言 Zig,这门语言估计很多人都没听过,因为即便在国外用的也不是很多,国内几乎还没有公司在用。但这门语言非常优秀,它被称为现代化的 C 语言,具有安全、快速以及富有表现力等特点。下面我们就从计算机原理的角度,来介绍一下 Z…

数据类型以及可能的面试题

数据类型以及可能的面试题 基础类型 int zs = 30; long num = 30L; //这个一般在后面加一个Lfloat f = 0.1f; double d = 0.1;//字符 char str1 = 刘; //字符只能用单引号 , 并且只能有一个字符 //字符串 String 不是关键字是类 String str2 = "uhsdaoja";拓展 //…

嵌入式软件调试与验证1概述

1 嵌入式软件调试与验证技术概述 1.1 调试和验证过程的重要性 近年来,嵌入式系统(ES Embedded systems)因其灵活的操作和可能性而被广泛应用于电子系统行业。嵌入式系统由硬件、软件和其他模块(如机械)组成,旨在作为更大系统的一部分执行特定任务。网络物理系统(CPS Cyb…

Redis 下载和安装(Windows)教程

下载 虽然 Redis 官方网站没有提供 Windows 版的安装包,但可以通过 GitHub 来下载 Windows 版 Redis 安装包。下载地址:https://github.com/tporadowski/redis/releases打开上述的下载链接,Redis 支持 32 位和 64 位的 Window 系统,如图所示:下载完成后,解压压缩包,您会…

学习笔记3 截图 代码

一、苏格拉底挑战二、使用chatgpt解决问题三、实践过程实践代码 hello: hello.o main.ogcc -Iinclude -o bin/hello hello.o mian.o hello.o:gcc -c /home/yuanyi/study/src/hello.c -Iinclude -o hello.o main.o:gcc -c /home/yuanyi/study/src/main.c -Iinclude -o main.ocle…

AT_ddcc2020_final_d Pars/ey

我不知道离别的滋味是这样凄凉,我不知道说声再见要这么坚强。AT_ddcc2020_final_d Pars/ey 重工业题。 找环然后树形 DP 是显然的,先考虑断开环上的边怎么做。 把环复制一遍放在结尾,记 \(sum_i\) 为环长的前缀和,\(f_i\) 为该子树内的最长根链的长度,问题变为每次给定一个…

Vue-插槽及自定义事件分发

一.插槽slot 在某些场景中,我们可能想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些片段。 <slot> 元素是一个插槽出口 (slot outlet),标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染。 插槽就好比一个占位符,它不是解决页面必须元素的位置…

软件设计开发笔记5:QT开发三参数温室气体数据记录软件

最近有一个为三参数温室气体分析仪及其多通道换向阀箱编写数据记录和控制的需求。所以在这一篇中我们就来分析一下如何使用QT实现这一需求。 1、需求分析虽然说传递过来的需求只有“实现一个三参数温室气体分析仪及其多通道换向阀箱的数据记录和控制”这样一句话,但所有人都清…
推荐文章