专栏首页SuperFeng快速掌握Python基础语法(下)

快速掌握Python基础语法(下)

接着上一篇,这篇继续来讲 Python 的基础语法,如果你还没有看过之前的那一篇文章,可以看一下。

字典

字典是一系列键-值对,键-值对之间用 冒号 : 连接,用花括号 { } 表示字典。

# 字典
alien_0 = {'color': 'green', 'points': 5}
print(alien_0['color'])

# green

给字典增添新键-值对,可以用如下方法:将值赋给字典名+方括号括起来新键名

# 给字典增添新键值对
alien_0['y_position'] = 0
print(alien_0['y_position'])

# 0

遍历字典时,键-值对的获取顺序是不可测的。

输入和 while 循环

input( ) 函数获取输入。

# 输入
message = input("Tell me something, and I will repeat it back to you:")
print(message)

while 循环。

# while 循环
current_number = 1
while current_number <= 5:
    print(current_number)
    current_number += 1

# 1
# 2
# 3
# 4
# 5

可用 break 直接退出循环,用 continue 进行下一次循环。

函数

用关键字 def 告诉 Python 你要去定义一个函数。用三个引号括起去给函数注释,说明该函数的作用。

# 函数
def greet(username):
    """简单问候语"""
    print('hello,' + username.title() + '!')


greet('superfeng')

# hello,Superfeng!

向函数传递实参时,可以按顺序传递,关键字传递(注意必须正确指定函数定义的形参名),默认值。

在 Python 中,向函数传递的实参都会被函数直接永久地修改,如果想在函数用实参的副本进行操作,就要用到向函数传递列表切片的方法,这样在传递实参之前就会就列表进行备份。

传递任意数量的实参,就要用 星号* ,会把任意数量的实参都封装在一个元组中。

# 传递任意数量的实参
def make_pizza(*toppings):
    """打印任意数量的实参"""
    print(toppings)


make_pizza('mushrooms', 'green papers', 'extra cheese')

# ('mushrooms', 'green papers', 'extra cheese')

传递任意数量的关键字实参,要用到 两个星号** ,这会将传入的关键字实参封装到一个字典中。

导入函数模块的方法:import + 要导入模块的名称。调用导入模块中的函数时,要使用 句点. 访问。在导入模块时,可以用 as 给模块起别名。

# 调用模块中的函数
import pizza


pizza.make_pizza('mushrooms', 'green papers', 'extra cheese')

# ('mushrooms', 'green papers', 'extra cheese')

在 Python 中,用关键字 class 创建,按照约定首字母大写的名称指的是,应该用驼峰命名法。类中的函数称为方法。特殊方法 _init(self, name1, name2)_ 可以看做向类传递参数的一个接口,其中通过形参 self 向类中其它方法传递参数。创建和调用一个类如下方法:

# 创建一个类
class Dog:
    """一次模拟小狗的简单尝试"""

    def __init__(self, name, age):
        """初始化属性 name 和 age"""
        self.name = name
        self.age = age

    def sit(self):
        """模拟小狗被命令时蹲下"""
        print(self.name.title() + ' is now sitting.')

    def roll_over(self):
        """模拟小狗被命令时打滚"""
        print(self.name.title() + ' rolled over!')


# 调用一个类
my_dog = Dog('willie', '6')
print(my_dog.name.title() + ' say hello!')
my_dog.roll_over()

# Willie say hello!
# Willie rolled over!

可以通过三种方式修改属性的值直接通过实例进行修改,通过方法进行设置,通过方法进行递增

继承

继承时,子类的括号中必须包括父类的名字。让子类继承父类的属性时,要用到 super( ) 函数,父类也称为超类(superclass)

# 继承
class SpecialDog(Dog):
    """子类:特殊的狗"""
    def __init__(self, name, age):
        # 用 super() 函数继承父类属性
        super().__init__(name, age)


his_dog = SpecialDog('tom', 6)
his_dog.roll_over()

# Tom rolled over!

如果在子类中重新写了一个与父类同名的方法,创建实例时会自动忽略父类。

文件

读取文件:关键字 with 可以在不需要访问文件之后将其关闭。文件路径可以用相对路径绝对路径进行查找。

# 读取文件
file_path = 'C:\\Users\\Desktop\\data.txt'
with open(file_path) as file_object:
    contents = file_object.read()
    print(contents)

存储数据

可以将 Python 文件的数据存储到 .json 类型文件中(.json 原本是为了 JavaScript 开发的,但后来被更多的语言所使用),这样不会变更文件的数据类型。

# 存储数据
import json

numbers = [1, 2, 3, 4, 5]
with open('num.json', 'w') as n_obj:
    json.dump(numbers, n_obj)

至此,你已经学会了 Python 的基础语法,有了这些基础知识,你就应该不会为了看不懂代码而发愁了。

本文分享自微信公众号 - SuperFeng(xfdnksj),作者:SuperFeng

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 快速掌握Python基础语法(上)

    这个《快速掌握Python基础语法》会更新两期,主要记录一些 Python 常用语法,方便你快速上手。会了这些语法之后,大部分的 Python 代码你应该都可以...

    SuperFeng
  • 机器学习系列19:将核函数应用于支持向量机

    当我们在已知参数的情况下,如何用带有核函数的支持向量机(SVM)去训练假设函数呢?

    SuperFeng
  • 机器学习系列 5:特征缩放

    首先我们应该了解一下多元线性回归。相比于单变量线性回归,该函数拥有多个变量值,那么他所拥有的参数就不仅仅是一个或者两个,而是多个。例如下面这个函数:

    SuperFeng
  • python第四十六课——函数重写

    3.函数重写(override) 前提:必须有继承性 原因: 父类中的功能(函数),子类需要用,但是父类中函数的函数体内容和我现在要执行的逻辑还不相符 ...

    hankleo
  • 干货|Python基础入门 课程笔记(三)

    元组中的不可变对象是不能被修改的哟.如果里面是列表等可变数据类型的话,可以进行修改.

    磐创AI
  • 翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 第 3 章:管理函数的输入

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 第 3 章:管理函数的输入(In...

    iKcamp
  • Python函数的介绍

    Python技术与生活认知的分享
  • MYSQL5.6优化器的一个新特性MMR

    一、什么是MRR MMR全称是Multi-Range Read,是MYSQL5.6优化器的一个新特性,在MariaDB5.5也有这个特性。优化的功能在使用二级索...

    MySQL轻松学
  • 深入 Python 流程控制

    可能会有零到多个 elif 部分,else 是可选的。关键字 ‘elif’ 是 ’else if’ 的缩写,这个可以有效地避免过深的缩进。if … elif …...

    py3study
  • Python第三十二课:NumPy字符串

    一直以来,我们处理的都是由数字组成的NumPy数组,其实NumPy中字符串也十分重要,尤其是在涉及到文件处理的时候,因为很多文件比如txt文档只支持字符串(st...

    HuangWeiAI

扫码关注云+社区

领取腾讯云代金券