Python学习(一)基础入门

Python环境下载安装

安装略

验证安装结果与编写第一个Python程序

下载PyCharm(IDE----集成开发环境,下载社区版即可),安装略。

数据类型

  • 数字
  • 字符串
  • 列表
  • 元组
  • 集合
  • 字典

数字类型包含整数(int)、浮点数(float)、复数(complex)和布尔(bool)。

注释

单行注释

# 我是单行注释(最好在#和注释之间加个空格,这样更符合规范)

多行注释(三个引号)

"""

多行注释

"""

类型转换

为什么需要转换类型

从文件中读取的数字,默认是字符串,我们需要转换成数字类型

input(),默认也是字符串,若需要数字也需要转换

将数字转换成字符串,用以写出到外部系统

等等

标识符

标识符命名中只允许出现

  • 英文
  • 中文
  • 数字
  • 下划线_

但是不建议使用中文,且不能数字开头

运算符

+    -    *   /    举例6/4=1.5

//    整除,举例9//4=2

%   取余

**   指数

字符串介绍

  • 单引号
  • 双引号
  • 三引号(赋值给变量,不赋值相当于多行注释了)

如果需要在字符串中打单引号或双引号,可以这么使用

单引号里套双引号

双引号里套单引号

或者用转义符  \

字符串格式化

其中的%s,%表示占位,s表示将变量变成字符串放入占位的地方

有多个变量占位,变量要用括号括起来,并按照占位的顺序填入

整数占位用%d

浮点数占位用%f

还可以控制数值的精确度

用f格式化

还可以格式化表达式

综合练习

输入

input()

input默认输入的是字符串,如果需要数字,需要进行类型转换。

布尔类型与比较运算

布尔类型只有两个值:True和False

比较运算符有:==等于   !=不等于   >大于   <小于   >=大于等于   <=小于

逻辑判断

if

用法:if接条件判断语句,后面接冒号

if语句体通过缩进来表示(四个空格,PyCharm会自动缩进)

最后一句print不属于if逻辑块内,无论条件是否满足均会输出

综合练习

if...else

if...elif...else

各条件互斥且有序,满足一个,其他的不会再运行

下面代码可以省略变量,直接将input作为条件判断,这样输入一个条件满足后,后面的条件不用再输入了。

if嵌套

猜数字游戏

循环

while循环

基本使用

i = 0
while i < 100:
    print("小丽,我喜欢你")
    i += 1

求1+100的和

i = 1
sum1 = 0
while i <= 100:
    sum1 += i
    i += 1
print(sum1)

猜数字游戏使用while实现,不限猜的次数,实现代码如下:

实现要点,无限次可以用while True表示

这里除了用break退出循环外,还可以定义一个flag变量,初始为True,当猜对后,flag=False,这样也可以退出循环。

import random

num = random.randint(1, 100)
print(num)
i = 1
while True:
    input_num = int(input("请输入一个数字:"))
    if input_num == num:
        print(f"恭喜你,{i}次就猜对了")
        break
    else:
        i += 1
        print("猜错了")
        if input_num > num:
            print("大了")
        else:
            print("小了")
 

嵌套循环

注意缩进即可

i = 1
while i <= 100:
    print(f"今天是第{i}天表白")
    j = 1
    while j <= 10:
        print(f"送的第{j}枝玫瑰花")
        j += 1
    print("小丽,我喜欢你")
    i += 1
print(f"第{i - 1}天表白成功")

嵌套循环输出99乘法口诀表

\t是制表符,可以令输出的内容对齐,更加美观

end=''这个可以让print不换行

for循环

除了while循环语句外,Python同样提供了for循环语句两者能完成的功能基本差不多,但仍有一些区别:
while循环的循环条件是自定义的,自行控制循环条件
for循环是一种”轮询”机制,是对一批内容进行“逐个处理”

name = "zhangsan"
for x in name:
    print(x)

x是临时变量,for循环里用不用这个临时变量都可以

序列类型,其内容可以一个个依次取出的类型,包括字符串、列表、元组等

range

range生成一个数字序列
1.range(5)          生成[0,1,2,3,4],默认从0开始,不包含5
2.range(5,10)     生成[5,6,7,8,9],range(num1,num2)不包含num2
3.range(5,10,2)  生成[5,7,9],后边的2是步长

for x in range(10):
    print(x)

如果想在外面使用临时变量,可以在for循环外定义一下,执行for循环时会进行覆盖

表白游戏

for循环输出99乘法口诀表

continue与break

continue退出当前循环

break退出整个循环

在嵌套循环中使用break

发工资案例,银行卡总共10000元,给20名员工发放工资,绩效低于5分不发工资,满足绩效每位员工1000元,余额不足后提示下个月再发放

本程序有个小问题,就是余额为0后,还会判断绩效,大家可以看看怎么改进。

函数

统计字符的长度,我们可以这么做

name = "zhangsan"
length = 0
for i in name:
    length += 1
print(length)

但是这样只能统计name这一个变量的字符长度,如果想要重复利用,就要用到函数了

name1 = "zhangsan"
name2 = "lisi"


def my_len(data):
    count = 0
    for i in data:
        count += 1
    print(f"{data}的长度是{count}")


my_len(name1)
my_len(name2)

函数的定义:

def+函数名(传入参数)

    函数体

    return 返回值

参数和返回值如果不需要,都可以省略

最简单的函数举例:

def say_hi():
    print("hello python")


say_hi()

带参数

def add(x, y):
    result = x + y
    print(f"{x} + {y}的计算结果是{result}")


add(4, 5)
add(6, 8)

带返回值

def add(x, y):
    result = x + y
    return result


r = add(4, 3)
print(r)

说明:所有函数默认返回None,数据类型type是'NoneType',也可以主动return None

1.什么是None
None是类型'NoneType’的字面量用于表示:空的、无意义的
2.函数如何返回None
不使用return语句即返回None
主动return None
3.使用场景
函数返回值
if判断
变量定义,不知道赋什么值时,可以先赋值None

函数说明文档

在PyCharm中输入三个""",回车自动就出来了,鼠标悬停到调用处,还能出现函数的说明

嵌套调用

在func_a中调用func_b

变量的作用域

def test():
    num = 100
    print(num)


test()
print(num)

程序会报错,最后一行提示不认识num,这是因为函数内部定义的变量为局部变量,在函数外部无法识别。

如果要定义全局变量,定义在函数外,如果想在函数里改变全局变量的值,使用global 变量名即可

存取钱案例:

代码如下:

name = "zhangsan"
money = 50000


def main_pro():
    input_name = input("请输入您的姓名:")
    if input_name == name:
        while True:
            print("您好,张先生,欢迎来到本银行,请选择操作:")
            print("查询余额\t[输入1]")
            print("存款\t\t[输入2]")
            print("取款\t\t[输入3]")
            print("退出\t\t[输入4]")
            num = int(input("请输入1-4:"))
            if num == 1:
                query()
            elif num == 2:
                in_m = int(input("请输入存款金额:"))
                cun_money(in_m)
            elif num == 3:
                out_m = int(input("请输入取款金额:"))
                qu_money(out_m)
            else:
                print("您输入的有误,程序退出")
                return None


def query():
    print(f"余额{money}")
    print("-------------")


def cun_money(in_money):
    global money
    money += in_money
    print(f"操作成功,余额{money}")
    print("-------------")


def qu_money(out_money):
    global money
    money -= out_money
    print(f"操作成功,余额{money}")
    print("-------------")


main_pro()

while True可以剥离出来,即在while True中调用main函数,(在main函数中return出客户的选择的数字),根据main函数返回值(1-4做判断if input_num==1)调取对应函数。感觉还是剥离出来好,要不功能再多些,看的很乱。即解耦合。
而且还有冗余代码,即取款存款结束后可以调取查询函数查询余额。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值