二、Python基础(基础篇)

一、Python基础(基础篇)

提示以下会基于已有C语言基础的前提下进行讲解


一、基本语句
1.print("")打印字符串
print("这是要打印的内容")
  • 在默认的情况下,print 都会自动换行,如果不希望自动换行,可以在 print 末尾增加以下代码:
print("这是要打印的内容", end="")
# 也可以让结尾增加其他内容
print("这是要打印的内容", end="---")

也可以利用 print 的特性直接输出一个换行:

print()
print("")
2.#单行注释
# 这是第一行注释
# 这是第二行注释
  • 注释通常位于代码之前
  • 为了格式整齐,Python的语法建议 # 后面应该加一空格
  • 如果要执行的语句和注释都很短,注释可以放在语句后面,且为了格式整齐, # 距离代码语句末尾应该有两个空格
  • 小技巧:在PyCharm中,选中要赋予单行注释的文本,按下 ctrl+/ 即可对选中的文本进行单行注释;同理,再按一次可以取消单行注释

PyCharm中,在注释文本前加上 todoTODO 关键字,可以让注释高亮显示,表示这是待执行的注释

# todo(备注) 高亮注释
# TODO(备注) 高亮注释

在这里插入图片描述
在PyCharm左下方中会列出标记的 TODO 注释,表示这些注释由用户自己标记,是待执行的注释
在这里插入图片描述

3.""""""多行注释
"""
这里是多行注释
这里是多行注释
...
这里是多行注释
"""
4.基本运算符
运算符含义
+
-
*
/
//取整除
%取余
**
  • 与C语言不同的是,Python的除法保留浮点数,因此增加了一个取整除的运算符
  • Python比C语言多了一个基本运算符——幂运算,如:2 ** 3 = 8
  • 在Python中," * " 还可以用于字符串的运算,计算结果就是字符串重复指定次数的结果
    如:“2” * 10 = ‘2222222222’
  • 在Python中," + " 还可以用于字符串的运算,计算结果就是两个字符串进行拼接
    如:(“张” + “三”) * 2 = “张三张三”
优先级运算符
最高**
*、/%//
最低+、-
  • 加括号 () 即可指定优先级
5.print()数据类型的打印、type()数据类型的查看和变量的定义和命名

一般命名法:

  • Python变量的命名规则与C语言类似,不能以纯数字组成或以数字开头,变量名不能含有特殊符号
  • Python建议在变量名中含多个英文单词时,应使每个单词都用小写表示,且不同单词用 " _ " 隔开
    (多个英文单词指包含两个英文单词及以上)
  • 如:student_name、class_number

驼峰命名法

(1)小驼峰式命名法:

  • 当变量名中含多个英文单词时,还可以利用驼峰命名法命名
  • 第一个英文单词以小写字母开始,后续单词的首字母大写
  • 如:firstNode、firstName

(2)大驼峰式命名法:

  • 每一个英文单词均采用首字母大写的形式
  • 如:FirstNode、FirstName

(注:一般命名法会使用得更为普遍)

student_number = "20201111"
student_name = "张三"
print(student_number)
print(student_name, student_number)
  • 在对变量进行打印时,直接在print的括号 () 里写变量名即可,不同变量间用 " , " 隔开,逗号后面要跟上一个空格
  • 在Python中,定义变量是不需要指定变量的类型的,Python解释器会根据定义变量时等号右侧的内容来自动准确定义数据类型
  • 除 “ 字符串 * 整型 ” 外,数字型变量字符串之间不可以进行运算
  • Python3.X中,long 和 int 均被整合成 int 以便管理,而Pyhon2.X区分 long 和 int
  • 若所指定的是字符串或字符类型,则需要在定义后面跟上 " "''

可以在PyCharm的调试器中查看数据类型,或者使用 type() 函数:这里输出的是 bool

student_boy = True
print(type(student_boy))

在C语言中不常用的布尔类型bool定义:

# 定义两个布尔类型,在C语言中不常用
student_boy = True
student_girl = False
  • 真用 True 表示(即非0数);假用 False 表示(即0),注意写法(首字母大写),在 bool数字型数据类型运算时,bool 将被视为 0 或 1 进行运算
  • Python还有一个科学计算的类型——复数型complex,一般用于处理工程问题
  • 除此之外,Python中还有三个非数字的高级类型:列表元组字典,将在以后介绍

利用变量运算的举例:

row = 10
col = 30
acreage = row * col
print(acreage)
6.input("")从键盘中获取输入信息
data = input("提示信息")
data1 = input("请输入第一个的数据:")
data2 = input("请输入第二个的数据:")
  • (" ") 里的内容将会是用户输入前的提示,而不需要 print
  • 输入的数据将会被视为字符串类型
  • 输入的数据将会存放在 data 里面
7.int()和float()实现数据类型的转换
age = input("请输入您的年龄:")
score = input("请输入您的成绩:")

# 将输入的字符串类型转换成所需要的类型
int(age)
float(score)
print(age)
print(score)
  • () 里的内容将会被转换成指定的类型 intfloat
  • int()float()返回值就是被转换之后的值

实际上要这样一个个地转换数据类型极其不方便,下面给出嵌套变更的方法:

age = int(input("请输入您的年龄:"))
score = float(input("请输入您的成绩:"))
print(age)
print(score)
8.变量的格式化输出
格式化字符含义
%s字符串
%d有符号十进制整型,%06d 表示输出的整型显示位数,不足位数用0补齐,右侧对齐
%d有符号十进制整型,%6d 表示输出的整型显示位数,不足位数用空格补齐,右侧对齐
%f浮点数,%.2f 表示小数点后只显示两位
%%输出%符号
%x以十六进制数方式输出

输出语法格式如下:

print(“输出信息+格式化字符” % 变量)

格式化输出一个变量时

print(“输出信息+格式化字符” % (变量1, 变量2, …, 变量N))

格式化输出多个变量时

name = "张三"
print("我的名字是 %s" % name)

# 输出多个格式化字符时
name = "李红"
number = 20201111
score = 90.99
print("我的名字是 %s ,我的学号是 %08d ,我的成绩是 %.2f" % (name, number, score))
  • 为了代码格式的整齐与可阅读性,在格式化字符两边分别加一空格隔开
  • 输出多个变量时,变量之间有逗号 " , " 隔开,并加一空格

提示
输入:

GPA = 3.95
print("您的加权平均分为 %.02f" % (GPA * 10 + 50))

输出:

您的加权平均分为 89.50

若输入:

GPA = 3.95
print(" %.02f" % GPA * 10)

则输出:10次GPA

3.953.953.953.953.953.953.953.953.953.95
  • 应注意优先级
9.import导入库/模块和库/模块内关键字的调用

例:导入 keyword 库,其中的 keword.kwlist 可以查看 Python 自带的所有关键字

import keyword
print(keyword.kwlist)
  • 以库名为前缀,加上点 " . " 后,PyCharm会为我们列出库里的可选关键字
  • 即以 文件名.关键字 的方式调用
  • 函数调用需要加 () ,而关键字调用不需要加 ()
  • 除了函数之外,还可以调用被调文件中所定义的变量,如:在 function_file.py 中定义有 name = "张三,那么在其他文件中 import function_file之后,即可使用 function_file.name,即 “张三”

补充:在工程目录下,我们会看到一个叫 _ pycache_ 的文件:
在这里插入图片描述

  • 一般在使用 import 导入过某文件并调用里面的内容后,就会在 _ pycache_ 中把被调文件解释好的二进制代码保存下来。
  • 这是因为这个时候被调用的文件已经被视为一个库/模块了(因为被调用过),因此里面的内容会视为长期不会被更改的内容(库/模块),所以会以二进制的形式保存下来,这样,在下次调用该文件的时候,就不需要重新解释该文件了,便大大提高的解释效率
  • 因此,很多库/模块可能是 .cpy 文件,即已经被解释好了的 Python 文件,以便调用时的高效运行
10.if判断语句与嵌套
比较运算符含义
==检查是否相等,是返回True
!=检查是否不等,是返回True
>检查是否大于,是返回True
>=检查是否大于或大于,是返回True
<检查是否小于,是返回True
<=检查是否小于或等于,是返回True
逻辑运算符含义
and
or
not
in
not in不在
  • and 和 or 在与两侧的条件之间应加一空格,not 在与右侧条件之间应加一空格
  • in 和 not in 后面可以跟上一个集合,如:3 in (1, 2, 3) = True

例:

if x > 10 and x < 100:
	print("10 < x < 100")
else:
	print("x < 10 或 x > 100")
  • 要执行的代码块应该缩进4个空格(即一个Tab,以后 Tab = 1 表示4个空格,如此类推)
  • ifelse 下缩进的部分都是一个完整的代码块

例:

is_employee = True

if not is_employee:
    print("您不是公司的员工,请勿入内")

else:
    print("您是公司的员工,欢迎您")
  • 上述例子展示了 bool 的使用

嵌套逻辑与格式如图所示:
在这里插入图片描述
例:

income = int(input("请输入您的收入:"))

if income >= 10000:
    print("月入过万了,不错")
    house = int(input("您有几套房?"))
    
    if house >= 1:
        print("不错,房子也有了")
        
    else:
        print("没有房子,继续努力")
        
else:
    print("您月入没过万,要加油才行啊")

例:if in 的应用

import function_file
choice = input("请输入您的选择")

if choice in ("1", "2", "3"):
    function_file.function1()

else:
    function_file.function2()
11.if语句进阶——elif的使用

例:

score = float(input("请输入您的考试成绩:"))
score = score // 10

if score < 6: 
    print("您的成绩不及格")
elif score == 6 or score == 7:
    print("您的成绩及格了")
elif score == 8:
    print("您的成绩良好")

else:
    print("您的成绩优秀")
12.pass 跳过语句

当条件判断后暂时不想执行任何语句时,可以用 pass 跳过

如:

number1 = input()
number2 = input()

if number1 >= number2:
    pass

else:
    print("number1 < number2")
13.第一阶段小结:石头剪刀布游戏

需求

  • 从控制台输入想出的手势——(1)石头 / (2)剪刀 / (3)布
  • 电脑随机出拳,比较胜负
# 导入随机数的库
import random

# 计算机获取随机数
computer = random.randint(1, 3)
player = int(input("请输入您的出拳类型:1—石头,2-剪刀,3-布:"))

if ((player == 1 and computer == 2)
        or (player == 2 and computer == 3)
        or (player == 3 and computer == 1)):
    print("您出的是: %d,计算机出的是: %d,您获胜了" % (player, computer))

elif player == computer:
    print("您出的是: %d,计算机出的是:%d,你们打成了平局" % (player, computer))

else:
    print("您出的是: %d,计算机出的是:%d,您输了" % (player, computer))
  • 判断条件的处理思想:先处理简单的,复杂的交给 else
  • 提示:随机数的库:random ,随机数的库下的整型随机数:random.randint(minint, maxint),返回值是 [minint, maxint] 之间的随机数,因而 minint < maxint,否则报错
  • 这里给出一种判断条件较长时的处理方式:

(1)首先按如下格式把条件全部写好,最大的括号是为了能够换行表示

if ((player == 1 and computer == 2) or (player == 2 and computer == 3) or (player == 3 and computer == 1)):

(2)然后分别在每一个or前面(空格后面)回车,PyCharm会自动格式缩进(Tab = 2),实际上缩进(Tab = 1)也符合Python的代码格式,但为了不与 if 的执行语句并列,保留较好阅读性,从而进行 Tab = 2 的缩进

if ((player == 1 and computer == 2)
        or (player == 2 and computer == 3)
        or (player == 3 and computer == 1)):
14.补充:random.uniform() 函数

random.uniform(min, max)

[min, max] 的区间内随机生成一个浮点数

例:

import random

print(random.uniform(1, 1))

在这里插入图片描述


二、循环语句
1.赋值运算符
运算符含义
a = b把b的值赋给a
a += ba = a + b
a -= ba = a - b
a *= ba = a * b
a /= ba = a / b
a //= ba = a // b
a %= ba = a % b
a **= ba = a ** b
  • 构造与功能跟C语言是一致的
  • Python没有 i++ 之类的运算符
2.while循环的使用

计数习惯:

  • 自然计数法:从1开始计数的方法,符合人类习惯
  • 程序计数法:从0开始计算的方法,更符合程序设计的思想
  • 除非有需要的时候,否则一般使用程序计数法
# 定义计数器的初始值
i = 0
result = 0

while i <= 100:
    # 列写满足条件时要执行的代码
    if i % 2 == 0:
        print(" i 是一个偶数")
        result += i
    
    # 处理计数器
    i += 1

print(i)  # 输出的 i 值仍然保留
print("0~100中偶数项的和为: %d" % result)
  • 实际上它与C语言的 while循环 十分相近
  • if 语句相似,代码块应该缩进 Tab = 1

循环逻辑与格式如图所示:
在这里插入图片描述

  • 注:在执行完 while循环 后,i 的值仍然保留在内存中,可以使用
3.while True: 和 while 1: 死循环与 break 和 continue

死循环:

while True:
while 1:

break 与 continue 的用法和C语言的完全一致:

break
continue
4.循环的嵌套

循环嵌套逻辑与格式如图所示:
在这里插入图片描述
例:要求使用循环嵌套输出下面图像
在这里插入图片描述

# 初始化计数器
row = 1

while row < 10:
    #初始化计数器
    col = 1
    
    while col <= row:
        print("*", end="")
        
        col += 1

    print("")

    row += 1
  • 注:通常用 row 表示行;用 col 表示列
5.第二阶段小结:九九乘法口诀表

需求

  • 符合九九乘法口诀表的排列方式——即三角形排列
  • 行(row) × 列(col) = 积

(1)若输出效果如图所示:
在这里插入图片描述

# 初始化计数器数值
row = 1

while row < 10:

    # 初始化计数器数值
    col = 1
    while col < row:
        print("%d×%d=%d, " % (row, col, row * col), end="")

        col += 1

    print("%d×%d=%d" % (row, col, row * col))

    row += 1

(2)若输出效果如图所示:
在这里插入图片描述

# 初始化计数器数值
row = 1

while row < 10:

    # 初始化计数器数值
    col = 1
    while col < row:
        print("%d×%d=%d, " % (col, row, col * row), end="")

        col += 1

    print("%d×%d=%d" % (col, row, col * row))

    row += 1
  • 用%2d可以进行格式的对齐
  • 也可以将 end="" 更改为:end="\t" 来进行格式的对齐
6.补充:转义字符

针对上述转移字符进行介绍:

转义字符含义
\ \ (中间不含空格)反斜杠符号
\ ’ (中间不含空格)单引号
\ " (中间不含空格)双引号
\n换行
\t制表
\r回车
  • 这些转义字符还可以运用在 print(" ")" " 里面

三、函数基础
1.无参函数的定义与调用

假设这个函数定义在的 .py 文件名为 function_file.py

def function_name():
    """定义一个函数"""
    print("Hello Python")


#调用该函数
function_name()
  • Python文档规定,函数定义完后,应该与后续的代码保持两行空行的距离
  • Python文档规定,函数的上方如果有代码,则应该与上放代码保持两行空行的距离
  • 一般可以在 def 的下方写函数定义的注释,如果注释写成 " " " 文本 " " " 的形式,那么如果框选中调用函数并按下 ctrl+q 时,PyCharm就会显示该函数的定义格式和文本注释,例如:
    在这里插入图片描述

函数定义逻辑与格式如图所示(def 指的是 define):
在这里插入图片描述
即可在当前的 .py 文件下定义一个函数

  • 要想在其他 .py 文件中调用该文件里的函数,被调函数所在的 .py 文件必须以英文字母开头,因此应该注意习惯 Python源程序文件的命名格式(重要)
  • 在当前文件下调用该函数不需要 import 导入
  • 函数的调用不能出现在函数定义的上方,因为 Python 是一行一行解释执行的

函数调用的基本方法:

import function_file

function_file.function_name()
  • 文件名.函数名 的方式来调用
2.带参函数的定义和调用
def summation(num1, num2):
    """定义一个函数"""
    result = num1 + num2

    return result


print("输出结果是: %d" % summation(10, 20))
  • 与C语言一样,函数接收外部数据后的参数属于形参——局部变量,在函数执行完之后会被释放
  • 与C语言一样,函数在 return 后函数即结束,不会执行其他代码
3.函数的递归调用

递归——即函数自己调用自己的操作,要注意应包含结束递归条件,不能形成多次递归——注意,Python默认最多997次递归调用

例:检验 0 ~ number 之间含有几个偶数(0是偶数)

def function(number):
    """递归调用函数,检验 0 ~ number 中含有几个偶数"""
    """这个是结束条件"""
    if number == 0:
        return 1

    else:
        if number % 2 == 0:
            return function(number - 1) + 1

        else:
            return function(number - 1)


print("0 ~ number 中含义 %d 个偶数" % function(100))

例:打印由可选字符、可选长度、可选行数组成的分割线(用递归调用,不能使用while

def print_line(string, len, row):
    """
    打印由可选字符、可选长度、可选行数组成的分割线
    
    :param string: 分割线的组成字符或字符串
    :param len: string的重复次数
    :param row: 分割线的行数
    """
    if row == 0:
        return

    else:
        print("%s" % string * len)
        return print_line(string, len, row - 1)


print_line("H ", 10, 4)
4.函数注释文档的使用技巧

def 下方写上三对双引号 " " " " " " 后,在三对双引号中间按下回车,即可自动生成函数注释文档,如图所示:
在这里插入图片描述
如上述递归调用例子中的注释:
在这里插入图片描述
:对函数的注释与对参数的注释之间间隔一个空行

于是,在调用函数时,在对于的函数名上按下 ctrl+q 即可显示如下效果:
在这里插入图片描述


上一篇文章
下一篇文章
  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值