python学习之路☞9.Comment, Primitive Data Types and Branch Conditional Structure if ... else ...

python学习之路☞9.Comment, Primitive Data Types and Branch / Conditional Structure if … else …

#python,#Comment,#data type,#branch/conditional structure,#input(),#int,#float,#complex,#boolean,#if … else …,

Comment

'''
注释: 给人看的说明文字,Python 解释器完全忽略
要点
# 让该行 # 之后的内容全部失效,解释器跳过。
行尾注释与代码在同一行,通常用于简短说明。
docstring(三引号字符串)放在函数/类/模块第一行时,可被 help() 和文档工具读取,有特殊意义。
好的注释解释"为什么",而不是"做了什么"(代码本身已经说明了做了什么):
# ✗ i = i + 1 # i 加 1
# ✓ i += 1 # 跳过表头行
'''
# 这是单行注释,# 号后面全部忽略
x = 10  # 行尾注释,代码照常执行

# 多行注释:每行都加 #
# 第一行说明
# 第二行说明
# 第三行说明

"""
这是多行字符串(docstring)
虽然常被当注释用,
但本质是字符串字面量,不是注释。
通常用于函数/类的文档说明。
"""

def add(a, b):
    """返回 a 与 b 的和。"""  # ← 函数文档字符串
    return a + b

# 临时屏蔽代码(调试常用):
# print("这行不会执行")
print("这行正常执行")

0

input() Function

'''
input(): 从终端读取用户输入,永远返回 str 类型
返回类型
input() 只返回 str,这是最常见的错误来源。

"18" + 1 → TypeError(str 不能和 int 相加)
int("18") + 1 → 19 ✓

标准三步模式:
1. 用 input() 读取 → str
2. 用 int() 或 float() 转换
3. 再进行运算

安全做法(用 try/except 防止输入非数字):
try:
    n = int(input("输入整数:"))
except ValueError:
    print("输入不是整数!")
'''
# 基本用法:括号内是提示语
name = input("请输入姓名:")
# 用户输入 Alice → name = "Alice"(str)

# 无提示语也可以:
x = input()

# 永远返回 str,即使用户输入数字:
age = input("请输入年龄:")
# 用户输入 18 → age = "18"(str,不是int!)

print(type(age))   # <class 'str'>

# 必须手动转换类型才能做数学运算:
age = int(input("请输入年龄:"))
price = float(input("请输入价格:"))

# 多个值一次输入(用 split):
a, b = input("输入两个数(空格分隔):").split()
a, b = int(a), int(b)
print(a + b)

1

Primitive Data Types int

'''
int: 没有小数点的数,Python 中精度无限制
要点
无精度限制:Python 的 int 可以是任意大的整数,不像 C/Java 有 32/64 位上限。

int() 截断而非四舍五入:int(3.9) = 3,想四舍五入用 round(3.9)。

bool 是 int 的子类:True == 1,False == 0,bool 值可以直接参与整数运算:True + True = 2。

整除结果:10 / 3 = 3.333…(float),10 // 3 = 3(int)。
常用内置函数
abs(-5) → 5(绝对值)
pow(2, 10) → 1024
max(3, 7, 2) → 7
min(3, 7, 2) → 2
round(3.5) → 4(四舍五入)
bin(10) → '0b1010'
hex(255) → '0xff'
'''
# 字面量(直接写):
x = 42
y = -7
z = 0

# 其他进制字面量:
b = 0b1010    # 二进制 → 10
o = 0o17      # 八进制 → 15
h = 0xFF      # 十六进制 → 255

# 大数可加下划线提高可读性:
population = 1_400_000_000  # 14亿

# 类型转换 → int:
print(int("42"))       # → 42   (字符串转整数)
print(int(3.99))       # → 3    (截断,不是四舍五入)
print(int(True))       # → 1
print(int(False))      # → 0
print(int("FF", 16))   # → 255  (16进制字符串)

# 查看类型:
print(type(42))        # <class 'int'>
print(isinstance(42, int))  # True

# Python int 无溢出:
print(2 ** 100)  # → 一个很大的正确结果

2

Primitive Data Types float

'''
float: 带小数点的数,底层是 64 位 IEEE 754 双精度
要点
float vs double:Python 没有 double 类型,float 本身就是 64 位双精度(等价于其他语言的 double)。

精度问题:0.1 + 0.2 ≠ 0.3 是所有语言的通病,因为十进制小数在二进制中大多无法精确表示。

解决精度问题:
· round(x, n) 保留 n 位小数
· decimal.Decimal 模块做精确十进制计算(财务场景)

/ 总返回 float:10 / 2 = 5.0,即使整除也是 float。
float vs int 混合运算
1 + 2      # → 3    (int)
1 + 2.0    # → 3.0  (float,自动提升)
1.0 + 2.0  # → 3.0  (float)
10 / 2     # → 5.0  (float,/ 总是)
10 // 2    # → 5    (int)
10 // 2.0  # → 5.0  (float)
'''

3

Primitive Data Types complex

'''
complex: 实部 + 虚部,数学中的 a + bi,Python 用 j 表示虚部
要点
虚数单位是 j,不是数学里的 i(工程领域惯例,Python 沿用)。

实部和虚部都是 float:z.real 和 z.imag 返回的是 float,即使看起来是整数。

日常编程很少用到,主要场景:信号处理(FFT)、电路分析、物理模拟、数学计算。

与 double 的区别:
· float(double)= 64位小数,只有一个数轴上的值
· complex = 两个 float 组合(实部+虚部),在二维平面上的值

cmath 模块提供复数版本的数学函数:
import cmath
cmath.sqrt(-1)   # → 1j(虚数单位)
cmath.sqrt(-4)   # → 2j
cmath.phase(1+1j)# → 0.785…(辐角,弧度)
'''
# 字面量(虚部用 j,不是 i):
z1 = 3 + 2j    # 实部 3,虚部 2
z2 = 1 - 4j    # 实部 1,虚部 -4
z3 = 5j        # 纯虚数(实部为 0)
z4 = complex(3, 2)  # 等价于 3+2j

# 访问实部和虚部:
z1.real        # → 3.0
z1.imag        # → 2.0

# 共轭复数:
z1.conjugate() # → (3-2j)

# 模(到原点的距离):
abs(z1)        # → 3.605...(√(3²+2²))

# 四则运算:
z1 + z2        # → (4-2j)
z1 * z2        # → (11-10j)
z1 / z2        # → (-0.294...+0.823...j)

# 类型转换:
complex(3)     # → (3+0j)
complex("3+2j")# → (3+2j)

4

Primitive Data Types boolean

'''
boolean: 只有 True 和 False,是 int 的子类
要点
只有两个值:True 和 False,首字母大写,这是语法规定(true 会报错)。

bool 是 int 的子类:True = 1,False = 0,这是 Python 的设计决策,bool 可以参与所有整数运算。

假值(Falsy)完整列表:
False、0、0.0、0j
""、[]、()、{}、set()
None

以上之外的所有值都是真值(Truthy)。

实用技巧:用 sum() 统计列表中 True 的数量,因为 True == 1:
sum(x > 0 for x in nums) → 正数的个数
'''
# 字面量(首字母必须大写):
a = True
b = False

# 比较运算产生 bool:
print(5 > 3)          # → True
print(5 == 3)         # → False
print("hi" == "hi")   # → True

# bool() 转换——"真值判断":
print(bool(1))        # → True
print(bool(0))        # → False
print(bool(3.14))     # → True
print(bool(0.0))      # → False
print(bool("hello"))  # → True
print(bool(""))       # → False  ← 空字符串为假
print(bool([1,2,3]))  # → True
print(bool([]))       # → False  ← 空列表为假
print(bool(None))     # → False

# bool 是 int 子类(可参与运算):
print(True == 1)      # → True
print(False == 0)     # → True
print(True + True)    # → 2
print(True * 5)       # → 5
print(sum([True, False, True, True]))  # → 3(统计True数量)

# type() 验证:
print(type(True))     # → <class 'bool'>
print(isinstance(True, int))  # → True !

5

Branch / Conditional Structure if … else …

'''
if: 判断条件真假执行语句块
    条件: 能返回布尔值的表达式或布尔值
    语句块: 具有缩进的多行代码语句
分类:单分支 多分支 和 嵌套分支
    单分支:
                      或       
        if False:     |    if False:
            pass      |        pass
                      |    else:
                      |        pass
    多分支: 
                      或       
        if False:     |    if False:
            pass      |        pass
        elif:         |    elif:
            pass      |        pass
                      |    else
                      |        pass
    嵌套分支:
                          或       
        if False:         |    if False:
            pass          |        pass
        else:             |    else:
            if False:     |        if False:
                pass      |            pass 
                          |        else:
                          |            pass
'''

单分支猜数字

print('-------单分支测试-------')
guess_num = int(input('请输入你想猜的数字1~3以内:'))

'''
一个猜数字函数
传参:guess_num 数字类型
作用:判断数字并打印结果
'''

def guess_result(guess_num):
    flag = (guess_num == 2)
    if flag:
        print('你猜对了!')
    else:
        print('大侠重新来过!')


guess_result(guess_num)  # 执行猜数字函数

6

多分支练习

print('-------多分支测试-------')

score_num = float(input('请输入你的分数,满分100分:'))
'''
这是个判断分数是否合格的函数
传参:分数 数字类型
作用:判断分数并打印结果
'''


def score_result(score_num):
    if score_num >= 80:
        print('大侠很优秀!')
    elif score_num > 60:
        print('大侠及格了!')
    else:
        print('大侠你不及格!')


score_result(score_num)  # 使用函数判断分数

7

嵌套支练习

print('-------嵌套分支测试-------')

salary_num = float(input('请输入你的每月薪资:'))
'''
这是个判断薪资是否符期望的函数
传参:薪资 数字类型
作用:判断薪资并打印结果
'''


def salary_reesult(salary_num):
    if salary_num >= 10000:
        print('月薪过万,不做人类,安乐离世,永恒自由!')
    else:
        if salary_num >= 5000:
            print('牛马苦,牛马累,薪资低,活受罪!')
        else:
            print('丸!辣!重!开!')


salary_reesult(salary_num)  # 使用函数判断薪资

8

参考

comment
input()
data-type
int
float
numeric-types-int-float-complex
boolean if
if

Comments