Python学习笔记 -- 基础语法篇

目录

一. 数据类型

二. 注释

三. 输入输出及强制类型转换

3.1 print和input

3.2 强制类型转换

四. 运算符

4.1 算数运算符

4.2 比较运算符

4.3 逻辑运算符

五. 多元赋值

六. 条件语句

七. 循环语句

7.1 while循环

7.2 for循环

7.3 continue和break


一. 数据类型

与C/C++不同,python支持自动类型推导,不需要显示声明变量的类型(显示声明也可),使用print(type(变量名))可以获取变量的类型,python的内置变量类型有整形int、字符串类型str、布尔类型bool以及浮点数类型float:

整形int

语法:a = 10 -- 隐藏类型,显示声明为a:int = 10

a = 10
b:int = 10
print(type(a))   # <class 'int'>
print(type(b))   # <class 'int'>

字符串类型str

语法:s = 'abc' ,显示声明为:s:str = 'abc'

python为弱语言,还支持双引号(")和三引号(''')来表示字符串,printf(s1 + s2)表示输出两个字符串连接后的结果,len(str)可以获取字符串的长度

s1 = 'abc'
s2:str = 'def'
s3 = "hello"
s4 = '''world'''

print(type(s1))    # <class 'str'>
print(type(s3))    # <class 'str'>
print(type(s4))    # <class 'str'>

print(s1 + s2)     # abcdef
print(s3 + s4)     # helloworld

print(len(s1))     # 3
print(len(s3))     # 3
print(len(s4))     # 5

布尔类型bool

布尔类型,即真假类型,只有True和False两种数据,注意与C/C++的true/false区分。

b1 = True
b2 = False
b3:bool = True

print(type(b1))  # <class 'bool'>
print(b1)        # True
print(b2)        # False

浮点数类型float

浮点数类型,即小数类型,python不区分单精度浮点数和双精度浮点数,float类型遵守C/C++同样的IEEE 754标准。

f1 = 3.14
f2:float = 1.2345
print(type(f1))   # <class 'float'>
print(f1)         # 3.14
print(f2)         # 1.2345

二. 注释

在python中,注释可以分为两种:(1). 行注释  (2). 文档注释

其中行注释采用 # ,文档注释采用一对三引号来注释 '''  '''。

a = 10   # 行注释
'''
文档内容注释
'''
print(a)

三. 输入输出及强制类型转换

3.1 print和input

print是Python自带的打印输出函数,类似于C/C++的printf,print支持格式化的输出数据,print的使用语法如下:

  • print(val) -- 打印出变量val的值。
  • print(f'val = {val}'),其中单引号外面的f表示格式化输出,{val}表示获取变量val的值。
a = 10
print(a)            # 10
print(f'a = {a}')   # a = 10

input用于在键盘上输入数据,来给某个特定的变量赋值,input的使用语法为:

  • val = input('提示信息')  -- 从键盘输入中获取val的值。

注意:从input接收数据的变量,默认类型都是str,如果要进行运算,需要进行强转类型转换。

val = input('请输入val的值:')
print(type(val))     # <class 'str'>
print(f'val = {val}')

3.2 强制类型转换

python进行强转类型转换的语法为:类型(变量名)

这里要注意与C/C++进行区分,C/C++的强转类型转换时类型用括号括起来 -- (类型)变量名,python是变量名称用括号括起来 -- 类型(变量名)。

转整形:int(a); 转字符串:str(a);转浮点数float(a);

val = input('请输入val的值:')
print(type(val))   # <class 'str'>
val = int(val)
print(type(val))   # <class 'str'>

四. 运算符

4.1 算数运算符

常见的算数运算符如:+ - * / %,与C/C++中的加、减、乘、除、取模意义完全相同,python引入了两个新的算数运算符:** 和 //。

  • ** 运算符:开方运算,a ** b 表示a的b次方。
  • // 运算符:地板除法,获取的结果向下取整。

python支持+=、-=、*=、/=运算符,但是不支持++、-- 运算符。

a = 2
print(a ** 4)   # 计算a的4次方
b = -10
print(b // 3)   # -10地板除3,结果为-4

4.2 比较运算符

python支持>、<、>=、<=、==比较运算符。

python的比较运算符与C/C++有以下两点不同:

  • python支持使用 == 运算符直接比较两个字符串,也可以使用> < >= <= 按照字典序比较字符串类型数据大小,C/C++必须调用函数来对字符串进行比较。
  • python支持连续比较,如 1 <= 2 <= 3 或者 2 == 2 == 2 在python中是被允许的,而在C/C++中连续比较则是被禁止的。
str1 = 'abc'
str2 = 'abc'
str3 = 'abc'
print(str1 == str2 == str3)  # True
print(1 <= 2 <= 3)   # True
print(5 == 5 < 2)    # False
print(10 > 9 > 3)    # True

4.3 逻辑运算符

  • and:逻辑与,两侧条件均成立为真,否则为假。
  • or:逻辑或,两侧条件其中至少一个成立为真,都不成立为假。
  • not:逻辑非,真变假,假变真。

在python中,and和or依然遵循C/C++的短路求值规则。

condition1 and condition2:若condition1不成立,那整个表达式不可能成立,不再对condition2进行判断,直接返回假。

condition1 or condition2:若condition1成立,那整个表达式就一定成立,不再对condition2进行判断,直接返回真。

print(1 == 2 or 1 == 1)  # True
print(1 > 2 or 2 == 2)   # True
print(not 1 > 2)   # True
print(not 1 < 2)   # False

五. 多元赋值

多元赋值,即:通过单条语句,实现对多个变量的赋值操作。

语法:变量1,变量2,... = 值1,值2,...

但是,多元赋值在实际的项目开发中并不推荐,如:a,b=10,20  b,a=a,b,可以实现a和b的值交换操作,这样会降低代码的可读性。

val1,val2,val3 = 10,20,30
print(val1,val2,val3)   # 10 20 30

a,b = 10,20
b,a = a,b
print(a,b)  # 20 10

六. 条件语句

python支持 if、if - else、if - elif - else 结构的条件判断,语法结构如下图。

注意:在python中,if中的do_something模块,是依靠缩进来划分的,在C/C++中是依据双大括号{}来进行划分的,相比于C/C++,python对缩进有严格的要求。

图6.1 python条件判断语法
a = int(input('请输入a的值:'))

if a == 1:
    print('hello world')
elif a == 2:
    print('hello python')
else:
    print('good morning')

七. 循环语句

7.1 while循环

while循环的语法:

while 条件:

        循环体

代码示例:使用while循环计算 1 + 2 + 3 + ... + 99 + 100。

sum = 0
i = 1
while i <= 100:
    sum += i
    i += 1
print(f'sum = {sum}')

7.2 for循环

for循环的语法:

for 循环变量 in 可迭代对象:

        循环体

可迭代对象:内部包含许多值的特殊变量,在for循环中,一般采用range类型的可迭代对象,其中range的定义语法为:range(begin, end, step)

  • 其中begin和end为可迭代对象中,数值的左右区间,遵循左闭右开原则,即:[begin, end),step表示步长,如range(2,12,2)就表示:2, 4, 6, 8, 10。
  • step是可以省略的,默认值为1,如range(1,6)表示:1, 2, 3, 4, 5。
  • step可以为负数,如range(5,0,-1)表示:5, 4, 3, 2, 1。

 代码示例:使用for循环计算2 + 4 + 6 + ... + 18 + 20。

sum = 0
for num in range(2, 21, 2):
    sum += num
print(f'sum = {sum}')   # sum = 110

7.3 continue和break

  • continue:用于终止本层循环,直接进入下一层循环。
  • break:终止整个循环。

代码示例:采用while True循环,打印1 ~ 10,其中略去5不打印。

num = 0
while True:
    num += 1
    if num == 5:
        continue
    if num > 10:
        break
    print(f'num = {num}')

相关推荐

  1. python 条件控制语句基础学习笔记

    2024-03-09 23:46:05       35 阅读
  2. 基础语法总结 —— Python

    2024-03-09 23:46:05       6 阅读
  3. pythonpython基础学习笔记

    2024-03-09 23:46:05       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-09 23:46:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-09 23:46:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-09 23:46:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-09 23:46:05       18 阅读

热门阅读

  1. 错误与异常之为何要异常

    2024-03-09 23:46:05       22 阅读
  2. webpack5基础--08_处理字体图标资源

    2024-03-09 23:46:05       24 阅读
  3. django收集静态文件

    2024-03-09 23:46:05       18 阅读
  4. 设计模式-访问者模式使用方法

    2024-03-09 23:46:05       23 阅读
  5. R语言系列1——R语言基础:入门篇

    2024-03-09 23:46:05       28 阅读
  6. 简易版axios实现-基于promise+XMLHttpRequest

    2024-03-09 23:46:05       23 阅读
  7. ESP32系列四:搭建http的webserver的服务器

    2024-03-09 23:46:05       25 阅读
  8. C++17之std::invoke: 使用和原理探究(全)

    2024-03-09 23:46:05       22 阅读
  9. Flutter第二弹:Widget

    2024-03-09 23:46:05       21 阅读
  10. C++ 类的前向声明的用法

    2024-03-09 23:46:05       25 阅读
  11. 【面试题】mysql常见面试题及答案总结

    2024-03-09 23:46:05       19 阅读