Python基础语法学习

基于Python3

基础语法

标识符

  1. 第一个字符必须是英文字母或下划线_
  2. 标识符的其他的部分由字母、数字和下划线组成。
  3. 标识符对大小写敏感。

注释

Python中单行注释以#开头

# 第一个Python程序
print("Hello Python")  # 这里也是注释

多行注释可以用多个#号,还有三个英文单引号''' 或者三个英文双引号 """

# 第一行注释
# 第二行注释

"""
第三行注释
第四行注释
"""

'''
第五行注释
第六行注释
'''

print("Hello Python")

行与缩进

Python使用缩进代表代码块,不需要使用大括号{}

同一个代码块的语句必须包含相同的缩进空格数

age = 18
if age >= 18:
    print("age >= 18")
    print("成年")
else:
    print("age < 18")
    print("未成年")

如果同一个代码块语句缩进空格数不一样,则会报错,如下所示:

age = 18
if age >= 18:
    print("age >= 18")
    print("成年")
else:
    print("age < 18")
  print("未成年")

报错提示如下

  File "D:\pycode\test\test1.py", line 7
    print("未成年")
                      ^
IndentationError: unindent does not match any outer indentation level

多行语句

如果一条语句太长,可以使用反斜杠 \ 来连接多行语句

a = "123"
b = "456"
c = "789"
d = a + \
    b + \
    c
print(d)

获取控制台输入

name = input("请输入姓名:")
print(name)

print输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

如果不换行并且在后面加上某个表示符号,则使用end="标识符"

age = 18
name = "lzc"
# 换行打印到控制台
print(age)
print(name)
print("------")
# 不换行打印到控制台
print(age, end=",")
print(name, end="")

import 与 from…import

  1. import或者from...import来导入相应的模块。
  2. 将整个模块somemodule导入,格式为:import somemodule
  3. 从某个模块中导入某个函数,格式为:from somemodule import somefunction
  4. 从某个模块中导入多个函数,格式为:from somemodule import firstfunc, secondfunc, thirdfunc
  5. 将某个模块中的全部函数导入,格式为:from somemodule import *

基本数据类型

Python中的变量不需要指定类型。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

可以通过type()函数查看变量的类型

a, b, c = 123, 6.66, True
print(type(a), type(b), type(c))

输出内容如下

<class 'int'> <class 'float'> <class 'bool'>

Python3中常见的数据类型有:数字、字符串、布尔类型、列表、元组、集合、字典

布尔类型

布尔类型即TrueFalse

Python中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为True,只有0空字符串空列表空元组等被视为False

布尔类型可以用来控制程序的流程,比如判断某个条件是否成立,或者在某个条件满足时执行某段代码。

a = True
if a:
    print("a=True")
else:
    print("a=False")

布尔值可以用andornot运算

a = True
b = False
print(a and b)  # False
print(a or b)  # True
print(not a)  # False

布尔值类型转换

a = True
b = False
print(int(a))  # 1
print(float(b))  # 0.0
print(str(a))  # "True"

数字类型

Python3支持intfloatbool

Python3中,boolint的子类,TrueFalse可以和数字相加, True==1False==0 会返回 True

Python3里,只有一种整数类型int,表示为长整型,没有python2中的Long

字符串

Python中的字符串用单引号'或双引号"括起来,使用反斜杠\转义特殊字符。

a = "123"
b = '456'
c = "\\n789"
print(a)  # 输出 123
print(b)  # 输出 456
print(c)  # 输出 \n789

字符串的截取语法格式:变量[头下标:尾下标],遵循左闭右开原则。下标为负数则代表从尾部开始,比如下标为-1则代表最后一个元素。
使用len()函数可以获取字符串长度。

a = "123456789"
print(a)  # 输出整个字符串
print(a[0:-1])  # 输出第一个到倒数第二个的所有字符
print(a[0])  # 输出第一个字符
print(a[2:5])  # 输出第三个到第五个的所有字符
print(a[2:])  # 输出从第三个开始的所有字符
print(len(a))  # 输出字符串长度

加号+是字符串的连接符。星号*表示复制当前字符串,与之结合的数字为复制的次数。

a = "123456789"
print(a + "10")  # 连接字符串
print(a * 2)  # 输出字符串两次

使用innot in可以判断字符串是否包含给定的字符串

a = "123456789"
b = "456"
print(b in a)  # True
print(b not in a)  # False

Python中,字符串格式化使用与Csprintf函数一样的语法。

print("我叫%s,今年%d岁,浮点数保留两位小数:%.2f,指定整数位数(位数不够前面补0):%03d" % ("张三", 18, 3.1415926, 1))
# 我叫张三,今年18岁,浮点数保留两位小数:3.14,指定整数位数(位数不够前面补0):001

常见的占位符

占位符替换内容
%d整数
%f浮点数
%s字符串
%x十六进制整数

Python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

a = """姓名\t年龄
李华\t18
"""
print(a)

列表(List)

列表是写在方括号[]之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表的截取语法格式:变量[头下标:尾下标],遵循左闭右开原则。下标为负数则代表从尾部开始,比如下标为-1则代表最后一个元素。
使用len()函数可以获取列表长度。

a = ["111", "222", "333", "444", "555"]
print(a)  # 完整列表
print(a[0])  # 获取第一个元素
print(a[1:3])  # 获取第二个到第三个的所有元素
print(a[1:])  # 获取从第二个开始的所有元素
print(len(a))  # 获取列表长度

列表常用方法

a = ["111", "222", "333", "333"]
print(a)  # ['111', '222', '333', '333']

# 在列表末尾添加新的对象
a.append("666")
print(a)  # ['111', '222', '333', '333', '666']

# 删除第二个元素
del a[1]
print(a)  # ['111', '333', '333', '666']

# 移除列表中某个值的第一个匹配项
a.remove("333")
print(a)

# 判断元素是否存在于列表中
print("666" in a)  # True
print("777" in a)  # False

列表遍历

a = ["111", "222", "333", "333"]
for x in a:
    print(x)

元组(Tuple)

元组(Tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间用逗号隔开。元组中的元素类型也可以不相同。

a = (123, "456", 123.12)
print(a)

集合(Set)

集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。集合使用大括号{}表示,元素之间用逗号,分隔。

a = {123, 456, 789, 123}
print("a =", a)  # 重复的元素会被自动去掉
b = {456, 666, 777}
print("a =", b)
print("a - b : a和b的差集 =", a - b)
print("a | b : a和b的并集 =", a | b)
print("a & b : a和b的交集 =", a & b)
print("a ^ b : a和b不同时存在的元素 =", a ^ b)

字典(Dictionary)

字典是一种映射类型,字典用{ }标识,它是一个无序的键(key):值(value)的集合。键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的。

a = {}
a["name"] = "张三"
a["age"] = 18
print(a)
b = {"city": "shenzhen"}
print(b)

输出内容如下

{'name': '张三', 'age': 18}
{'city': 'shenzhen'}

数据类型转换

对数据内置的类型进行转换,一般情况下你只需要将数据类型作为函数名即可。
数据类型转换可以分为两种:显式类型转换(需要使用类型函数来转换)、隐式类型转换(自动完成)

隐式类型转换

Python会自动将一种数据类型转换为另一种数据类型。
对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失。

num_int = 123
num_float = 1.23
num_new = num_int + num_float
print("datatype of num_int:", type(num_int))
print("datatype of num_float:", type(num_float))
print("value of num_new:", num_new)
print("datatype of num_new:", type(num_new))

输出如下

datatype of num_int: <class 'int'>
datatype of num_float: <class 'float'>
value of num_new: 124.23
datatype of num_new: <class 'float'>

显式类型转换

使用int()float()str()函数来执行显式类型转换

int()强制转换为整形

x = int(1)
y = int(2.8)
z = int("3")
print(x, type(x))
print(y, type(y))
print(z, type(z))

输出如下

1 <class 'int'>
2 <class 'int'>
3 <class 'int'>

float()强制转换成浮点类型

x = float(1)
y = float(2.8)
z = float("3")
w = float("4.2")
print(x, type(x))
print(y, type(y))
print(z, type(z))
print(w, type(w))

输出如下

1.0 <class 'float'>
2.8 <class 'float'>
3.0 <class 'float'>
4.2 <class 'float'>

str()强制转换成字符类型

x = str("s1")
y = str(2)
z = str(3.0)
print(x, type(x))
print(y, type(y))
print(z, type(z))

输出如下

s1 <class 'str'>
2 <class 'str'>
3.0 <class 'str'>

条件控制

条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

条件控制中常用的操作运算符和逻辑运算符

操作符描述
<小于
<=小于或等于
>大于
>=大于或等于
==等于,比较两个值是否相等
!=不等于
and
or
not

if 语句

一般形式如下

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3
score = 80
if score < 60:
    print("不及格")
elif score >= 60 and score < 80:  # 这里可以写成 60 <= score < 80
    print("良")
else:
    print("优秀")

match…case

Python 3.10 增加了match...case的条件判断

match subject:
    case <pattern_1>:
        <action_1>
    case <pattern_2>:
        <action_2>
    case <pattern_3>:
        <action_3>
    case _:
        <action_wildcard>

例如:

day = 1
match day:
    case 6:
        print("星期六")
    case 7:
        print("星期日")
    case _:  # 当其他 case 都无法匹配时,匹配这条
        print("工作日")

循环语句

while

num = 1
while num <= 10:
    print(num)
    num = num + 1

Python中没有do..while循环。

while循环使用else

如果while后面的条件语句为false时,则执行else的语句块。

num = 1
while num <= 5:
    print(num, "小于等于5")
    num = num + 1
else:
    print(num, "大于5")

for语句

for 循环可以遍历任何可迭代对象,如一个列表或者一个字符串。

for <variable> in <sequence>:
    <statements>
else:
    <statements>

例如

list = ["aaa", "bbb","ccc","ddd"]
for x in list:
    print(x)

for语句使用else

for…else 语句用于在循环结束后执行一段代码

list = ["aaa", "bbb","ccc","ddd"]
for x in list:
    print(x)
else:
    print("循环介绍")

函数

使用def关键字定义函数

def 函数名(参数列表):
    函数体

使用函数计算两个数相加

def sum(a, b):
    return a + b
c = sum(10, 20)
print(c)

参数

必须参数

def hello(name):
    print("name:", name)

    
hello()

不传参数会报错

Traceback (most recent call last):
  File "D:\pycode\test\test1.py", line 4, in <module>
    hello()
TypeError: hello() missing 1 required positional argument: 'name'

关键字参数

使用关键字参数允许函数调用时参数的顺序与声明时不一致

def hello(name, age):
    print("name:", name)
    print("age:", age)


hello(age=18, name="xiaoli")

输出如下

name: xiaoli
age: 18

默认参数

调用函数时,如果没有传递参数,则会使用默认参数。

def hello(name, age = 20):
    print("name:", name)
    print("age:", age)


hello(age=18, name="xiaoli")
print("-------------------")
hello("wangwu")

输出

name: xiaoli
age: 18
-------------------
name: wangwu
age: 20

不定长参数

加了星号*的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

def hello(a, *b):
    print(a)
    print(b)


hello(123, 456, 789)

输出

123
(456, 789)

加了两个星号**的参数会以字典的形式导入。

def hello(a, **b):
    print(a)
    print(b)


hello(123, name="xiaoli", age="18")

输出

123
{'name': 'xiaoli', 'age': '18'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值