if 测试和语法规则

if语句通用格式

if <test1>:
    <statements1>
else <test2>:
    <statements2>

Python中没有switch case 语句。然而python,多路分支是写成一系列的if/elif测试,或者对字典进行索引运算或搜索列表。

if/elif:

if choic == 'spam':
    print(1)
elif choice == 'ham':
    print(2)
else:
    print('bad choice')

字典:

choice = 'spam'
print({'spam':1,
        'ham':2}[choice])

if and in:

choice = 'spam'
if choice in branch:    #branch is an dict
    print(branch[choice])

 

真值测试

敲黑板,布尔运算符在python中是字符and, or, not,不是C的&&,||和| 。此外,布尔and和or运算在python中会返回真或假对象,而不是True或False

>>> 2<3, 3<2
(True, False)
>>> 

像这类值的比较会返回True or False作为其真值结果,但and or运算符会返回对象,不是运算符的左侧就是运算符的右侧对象。Python会在找到的第一个真值操作数地方停止,即短路计算。

 

if/else 三元表达式

if x:
    A = Y
else:
    A = Z
A = Y if X else Z

 

Learning Python, Fourth Edition, by Mark Lutz.

 

 

在 Bash 编程中,`if` 语句是一种条件控制结构,用于根据条件执行不同的代码块。Bash 中 `if` 的语法规则与其它编程语言略有不同,下面详细介绍其语法规则使用方式。 --- ## 一、基本语法结构 ```bash if condition; then # 条件为真时执行的代码 elif condition2; then # 第二个条件为真时执行的代码 else # 所有条件都不满足时执行的代码 fi ``` - `condition` 可以是一个命令、测试表达式(test 或 [[]])或组合条件。 - 每个分支都必须以 `then` 开头。 - `elif` `else` 是可选的。 - 必须以 `fi` 结束整个 `if` 语句。 --- ## 二、条件表达式 Bash 中常用的条件判断方式有: ### 1. 使用 `test` 命令(等价于 `[ ]`) ```bash if [ condition ]; then ... fi ``` **示例:** ```bash if [ "$1" = "hello" ]; then echo "You entered 'hello'" fi ``` > ⚠️ 注意:`[ ]` 内部的每个操作符变量都需要用空格隔开。 --- ### 2. 使用 `[[ ]]`(更推荐) `[[ ... ]]` 是 Bash 的关键字,比 `[ ]` 更强大,支持正则表达式、字符串模式匹配、逻辑运算符等。 ```bash if [[ "$1" =~ ^[1-9]$ ]]; then echo "Input is a digit between 1 and 9" fi ``` **优点:** - 支持 `=~` 正则匹配; - 支持通配符 `*` 匹配; - 不需要担心引号空格问题。 --- ### 3. 使用命令退出状态 任何命令的退出状态(exit status)都可以作为条件判断依据。退出状态为 0 表示成功(true),非 0 表示失败(false)。 ```bash if grep "hello" file.txt; then echo "Found 'hello' in file.txt" else echo "Not found" fi ``` --- ## 三、逻辑运算符 - `&&`:逻辑与; - `||`:逻辑或; - `!`:逻辑非; **示例:** ```bash if [[ $age -gt 18 && $age -lt 60 ]]; then echo "You are between 18 and 60" fi ``` --- ## 四、常见错误与注意事项 | 错误示例 | 说明 | |----------|------| | `if [ $var = "abc" ]` | 如果 `$var` 为空或包含空格,会导致语法错误 | | `if [ $var ]` | 如果 `$var` 是空字符串,相当于 `if [ ]`,返回 false | | `if [ "$var" = "abc" ]` | ✅ 正确写法,使用双引号保护变量 | | `if [[ $var = abc ]]` | ✅ 可以不加双引号,但建议加上以避免出错 | --- ## 五、完整示例 ```bash #!/bin/bash if [[ -z "$1" ]]; then echo "Error: No argument provided." exit 1 elif [[ "$1" =~ ^[1-9]$ ]]; then echo "You entered a valid digit: $1" else echo "Invalid input: $1" fi ``` 这个脚本: 1. 检查是否传入参数; 2. 判断参数是否是 1~9 的数字; 3. 否则提示非法输入。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值