<From Zero to Hero>零基础学习Python基础语法【print和变量】

文章目录

print()函数

无引号

单引号的用法

双引号的用法

三引号的用法

转义字符

变量和赋值

变量的命名规范

知识点回顾:

print()函数

转义字符

三引号

小练习:

步骤讲解:


人工智能正在悄然地改变我们的生活方式,传统行业纷纷转型,科幻电影的一幕幕正在变成现实。

随着技术的变革,人类简单重复性的劳动或思考活动已经逐步被机器取代。那么,我们该如何改变我们的工作方式和学习思维?如何利用技术加持竞争力?

在互联网+时代,『编程』已不是『程序员』、『工程师』的专属,而是一个通往未来世界的工具,甚至是一个新的机遇。

如果你现在想掌握编程技能的话,我强烈推荐你Python,它无处不在!

现在,我已经在python知识海洋里,为你定制了一条通往目标终点的学习路线。

下面👇是你的专属知识导航图。

在这个过程中,除了需要掌握python的基础知识,你还需要逐步掌握这几项技能:

HTML基础知识

爬虫四步:获取数据、解析数据、提取数据、存储数据对应的模块与应用

模拟登录,以及定时将爬虫结果发送邮箱

利用协程和scrapy框架优化爬虫效率和稳定性

常见应对反爬虫技巧

 比如:招聘网站信息爬取;电影、美食、菜谱、天气、音乐等生活信息爬取;财经股票等信息爬取等

比如:利用爬虫技术批量和自动化地获取客户评论和客户的基本信息,分析潜在客户并做回访

比如:利用爬虫技术批量收集竞争对手的销售情况和产品信息,并与自己公司的产品和销售情况作比较

比如:爬取几千家公司的财务报表并分析,挑选潜力股

比如:爬取北京市二手房交易的数据,来预测北京未来房价走势

首先,来到你面前的是一个图像识别的小程序。它能做的是将写在纸上的文字,精准地识别出来。如下图:

下面是一段已经写好的代码,直接在本地运行。

import requests
from aip import AipOcr

image = requests.get('https://res.pandateacher.com/python_classic.png').content

APP_ID = '16149264'
API_KEY = 'yxYg9r4OuAs4fYvfcl8tqCYd'
SECRET_KEY = 'yWg3KMds2muFsWs7MBSSFcgMQl8Wng4s'
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
res = client.basicGeneral(image)
if 'words_result' in res.keys():
    for item in res['words_result']:
        print(item['words'])

else:
    APP_ID = '11756541'
    API_KEY = '2YhkLuyQGljPUYnmi1CFgxOP'
    SECRET_KEY = '4rrHe2BF828bI8bQy6bLlx1MelXqa8Z7'
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    res = client.basicGeneral(image)
    if 'words_result' in res.keys():
        for item in res['words_result']:
            print(item['words'])
    else:
        print(res)

终端结果打印:

优美胜于丑陋
明了胜于晦涩
简洁胜于复杂
复杂胜于凌乱
扁平胜于嵌套
问隔胜于紧湊

已经看到了,机器能精准地识别图片中的文字,这就是我们能通过Python帮计算机做到的:图像识别,让计算机拥有“眼睛”,看懂图片。

你知道,图像识别是人工智能领域的一个应用。下面,我们再来一个更厉害的:真正地运行一个人工智能小程序,和计算机进行“对话”。它可是用Python码出的Siri。

import json
import time
import random
from tencentcloud.common import credential
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.common.profile.http_profile import HttpProfile
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.tbp.v20190627 import tbp_client, models


def request(comment):
    try:
        cred = credential.Credential("AKIDVwLZaNvEKJBqHTQ8bpoY4LM9h16wXt0s", "iAMIyOYS9bolSt51lHYZMxLVQ7ZmlW2J")
        httpProfile = HttpProfile()
        httpProfile.endpoint = "tbp.tencentcloudapi.com"

        clientProfile = ClientProfile()
        clientProfile.httpProfile = httpProfile
        client = tbp_client.TbpClient(cred, "", clientProfile)

        req = models.TextProcessRequest()
        params = {
            "BotId": "22f597c9-56fc-4475-aec4-6b54a2f8c194",
            "BotEnv": "release",
            "TerminalId": str(random.randint(1, 9999)),
            "InputText": comment
        }
        req.from_json_string(json.dumps(params))

        resp = client.TextProcess(req)
        return json.loads(resp.to_json_string())['ResponseMessage']['GroupList'][0]['Content']

    except TencentCloudSDKException as err:
        print('今天我出了一点小问题~快联系助教帮忙解决一下~~')
        exit()


def robot_think():
    print('\n思考中', end='')
    for i in range(6):
        print('.', end='')
        time.sleep(0.3)
    print('\n')


def robot_say(content):
    print('机器人:' + content, end='\n\n')
    time.sleep(1)


def ask():
    comment = input('> 我想说:')
    robot_think()
    content = request(comment)
    robot_say(content)


dialogues = [
    '大家好!我是你的聊天机器人。',
    '我有问必答,有人会问我“今天深圳天气怎么样?”,也有人问我“学编程有什么用?”',
    '快来问我问题呀,欢迎来撩!',
    '再来问我点啥吧!我把我知道的都告诉你,嘻嘻!',
    '我有点饿了,再和你聊完最后一句,我就要下线啦!你还有什么要问我的?',
    '我走啦,下次见!'
]

for i in dialogues[:3]:
    robot_say(i)

for i in dialogues[3:]:
    ask()
    robot_say(i)

机器人:大家好!我是你的聊天机器人。

机器人:我有问必答,有人会问我“今天深圳天气怎么样?”,也有人问我“学编程有什么用?”

机器人:快来问我问题呀,欢迎来撩!

> 我想说:你每月工资多少啊

思考中......

机器人:白领不是以钱为衡量标准的,是生活质量和态度。其实没有必要界定自己到底是不是白领金领,开心就好了。没有压力的生活是最好的。

机器人:再来问我点啥吧!我把我知道的都告诉你,嘻嘻!

> 我想说:你是不是每天工作八小时?

思考中......

机器人:差不多吧

机器人:我有点饿了,再和你聊完最后一句,我就要下线啦!你还有什么要问我的?

> 我想说:你买房了吗?

思考中......

机器人:买什么房呀?

机器人:我走啦,下次见!

print()函数

恭喜你已经步入了python新世界,让我们使用print()开启对python的第一声问候!print()函数的用法有以下几种:单枪匹马——不带引号、搭配单引号、搭配双引号、搭配三引号,我们逐个见识下吧!

无引号

注意,在正式敲代码之前,必须切换成英文输入状态,保证print()函数的括号是用【英文括号】,不然会报错。

import time
print ('在'+time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())+',我写了人生中第一行Python代码\n它的内容虽然简单,不过是平凡的一句print(520)\n但我知道:我的编程之路,将从最简单的520开始\n在我点击运行的同时,一切在这一刻开始变得不同\n以下,是这行代码的运算结果:' )
print(520)

在2021-10-16 10:54:49,我写了人生中第一行Python代码
它的内容虽然简单,不过是平凡的一句print(520)
但我知道:我的编程之路,将从最简单的520开始
在我点击运行的同时,一切在这一刻开始变得不同
以下,是这行代码的运算结果:
520

你能够实现与计算机交互的“初体验”,离不开print()函数的帮忙。这也是我们即将解锁的第一个Python语法知识点。

刚才,虽然你只是输入了一个简单的print,但在背后,这段Python代码却帮你做了这样的一些事情:

(0)我们向计算机发出指令:“打印‘520’”;

(1)Python把这行代码编译成计算机能听懂的机器语言;

(2)计算机做出相应的执行;

(3)最后把打印结果呈现在我们面前。

这,就是我们通过Python这个工具,成功与计算机实现沟通的方式。

 在Python的魔法世界,我们如果想让计算机帮忙写出张学友的名字,该怎么运用print()函数对计算机发出指令呢?

print('张学友')

张学友

 看,屏幕上是不是出现了张学友的名字?这就是print()函数的主要功能:打印内容。

在这里,打印的意思是:让计算机把你给它的指令结果,显示在屏幕的终端上。

单引号的用法

到这里,你已经亲自使用过两次print()函数了。我们来观察一下,你两次写下的print()函数语句有什么不一样的地方呢? 

print(520)

print('张学友')

很明显,你会发现,在print('张学友')里,多了一对单引号。

那么问题又来了:这个单引号是干啥用的?为什么打印文字的时候需要加上引号呢?

这是因为,计算机的脑回路比较特别:只能理解数字,却读不懂文字。因为数字和数学运算是标准化、有固定格式的,而文字却能够千变万化。

如果你直接让计算机print(张学友),它会一脸懵并大声报错:“这三个字啥意思,你没有定义清楚,不懂诶……”

NameError: name '张学友' is not defined

这,便是print()函数中引号的用法:当括号内有引号的时候,就相当于告诉计算机——你不需要执行多余的操作,我输入什么,你就打印什么。

双引号的用法

在print()函数内不仅能使用单引号,还能使用双引号,两者的效果没什么区别,都能让你打印出一行文本。

有些时候,单引号和双引号可能会在括号内同时出现,比如print("Let's play")

这种情况下,需要注意区分清楚哪个引号是属于print()函数结构,哪个引号是属于你要让计算机打印的内容,可别“混搭”了。

说这么多,运行一下代码就懂了。直接在下面代码框中点击运行,观察运行结果。(点击运行前先思考一下,在第三个print()函数中,哪个引号才属于print()函数结构)

# 括号内是单引号的情况。
print('一起玩吧')

# 括号内是双引号的情况。
print("一起玩吧")

# 括号内单双引号同时存在的情况。
print("Let's play")

一起玩吧

一起玩吧

Let's play

我们观察上面的代码,发现多了一些带有『#』的语句,它是怎么一回事呢?

其实呀在python里,『#』常用作单行注释符号,用于解释单行代码,比如 『# 括号内是单引号的情况』用于解释说明代码『print('一起玩吧')』。#号后边的任何数据在代码运行的阶段不会被输出。

回到print()函数,在print("Let's play")中,没有被打印出来的引号就属于print()函数结构啦。

不过,在print()函数中,引号里的内容其实也不一定非得是文字,还可以是英文和数字。

相应地,在括号内没有引号的情况下,我们应该往括号内放入计算机能够“理解”的内容,如:数字或数学运算。

此时,print函数会让计算机尝试去“读懂”括号里的内容,并打印最终的结果。

因此,当计算机读懂数据数字后,就打印这个数据。当读懂数字运算后,则打印得到运算结果。

 如print(1+1)是计算机能直接读懂的数学运算,所以,它会直接打印出最终的运算结果:“2”。这就是计算机“读懂内容”的表现。

三引号的用法

如果觉得排版还不够好看,有办法能让文字的每一个逗号后面都换行显示,打印出“自动换行”的效果吗?

答案是:在print内部使用三引号'''(连续输入三个单引号)来实现跨行输出。

嘿嘿,没想到吧,除了单引号和双引号之外,print()里面居然还能放三引号。直接运行下面这段代码。

print('''我愿意留在汤婆婆的澡堂里工作两年,
第一年在锅炉房和锅炉爷爷一起烧锅炉水,
将在这个世界变成一头猪。
''')

我愿意留在汤婆婆的澡堂里工作两年,
第一年在锅炉房和锅炉爷爷一起烧锅炉水,
将在这个世界变成一头猪。

 现在我们已经学习了print()函数的四种情况--无引号,单引号,双引号,三引号。再回顾一下它们之间的差别,巩固一下。

 

 注意,在Python中,默认所有正确的语法,包括标点符号都是【英文】。不小心用了中文标点的话,计算机会无法识别,然后报错。

在终端里,你能看到的最常见的符号报错提示就是【syntaxError:invalid syntax】(语法错误:无效语法)。

转义字符

其实,之前的换行案例,还有第二种实现换行的办法:使用转义字符\n,像这样:

print('我愿意留在汤婆婆的澡堂里工作两年,\n如果我违背工作内容的话,\n将在这个世界变成一头猪。')

除了\n之外,转义字符还有很多,它们的特征就是:反斜杠+想要实现的转义功能首字母。

比如换行\n代表【+newline】;退格\b代表【+backspace】;回车\r代表【+return】。大家可以按照这种方法记住转义字符的含义。

我把常用的一些转义字符做了个总结:

变量和赋值

那么,在信息纷繁的代码世界里,我们应该如何更好地储存信息,让计算机能够在你需要的时候帮你调用出你想要的信息呢?

你需要借助【变量和赋值】的力量,将繁杂的信息给一一“收纳”好。

name='千寻'

这就是一个常见的“给变量赋值”的动作。在这里,name就是一个变量,这行代码的意思,就是把“千寻”这两个字【赋值】给了“name”这个【变量】。

这就好比,为了让千寻在日后能在计算机中更方便地找到她的名字,我们帮她把名字收纳进了一个小盒子里,并在这个盒子上贴了个叫“name”的标签。

回想一下,我们平时在收拾东西的时候,是不是会把散落各处东西放进不同的盒子里,并且做好标记?这样的“收纳”动作,能够让空间变得整齐,也更方便我们自己取用东西。

同理,计算机也是这么做的,它会把成千上万的数据放在不同的“盒子”里,这样才方便它存储和操作数据。

这个“盒子”在Python中被称为变量,你可以在这个“盒子”里放任何你想放的内容。

而这个往盒子里装东西的过程,在代码的魔法世界被称为【赋值】。

name='千寻'
name='小千'
print(name)

小千

终端上出现的结果是不是【小千】?可这又是为什么呢?我们对“name”这个变量第一次的赋值不是【'千寻'】吗?为什么打印的结果是第二次的赋值呢?

这就涉及到了变量的特点:变量之所以称为变量,是因为它保存的数据是可以随意变化的。

刚才我们讲,我们可以将变量当作一个盒子,你可以在这个盒子里放任何内容,但盒子都有它的最大容量,不能无限制地塞东西。

偏偏在代码世界里,盒子的容量又特别小,仅为1。所以当你需要放进新的东西时,只能寻找一个新的盒子。

在我们上面的案例中,第一行代码:name='千寻'表达的意思是:把千寻这个名字放到name这个变量“盒子”中。

由于,计算机是一行行自上而下执行代码的,所以当运行到第二行代码name='小千' 时,变量“name”里存储的【'千寻'】就被替换成了【'小千'】。

所以,当运行到第三行 print(name) 时,我们打印出的结果,就自然而然的是小千了。

其实,不仅是千寻,名字对于我们每个人来讲都是有意义的,它帮助你“定位”自己,让别人能轻松地找到你。所以,人的名字不能乱取,同理,给变量的命名也需要遵循一定的规范。

变量的命名规范

对于变量的命名,我们可以遵循以下规范:

比如说,如果信息是姓名,那么变量可以命名为name;如果信息是数字,那么变量名则应该叫做number。

很多新手在刚入门的时候会习惯给变量命名为a、b、c等英文字母。这样的变量名会让你无法从诸多信息中分辨出变量里装的东西是什么,这无异于给自己的孩子取名叫做“张小红”、“王小明”,一下就淹没于茫茫人海之中了。

除了变量命名之外,还要注意的是:在代码世界中,赋值符号=不是左边等于右边的意思。仅仅表示赋值动作:把右边的内容放到了左边的盒子中。

代表左右两边相等的符号,是比较运算符==,虽然他俩长得像,但代表的却是完全不同的意思,可千万不要搞混了。

 

最后,我们来总结一下这关的知识点:

到这里,或许你会问:我这关学的这几个简单的代码有什么用呢?

虽然print()函数是最简单的语句,但其实,你往后要做的任何一个程序几乎都离不开print()函数的支持。

例如说,你能用print()函数给自己创造一个可爱的好朋友“人工智障小埋”,她会蹦跶着到你面前,调皮地让你猜她的年龄。

下面是一段已写好的代码,请直接点击代码区的【运行】,只有点击运行,代码才会跑起来哦。快来和小埋玩一下猜年龄的游戏吧!

注意:在小埋问你她的年龄时,要记得在【终端】输入你猜的数字哦。

import random
import time

###提示语部分
print('你好,我是机器人小埋,我们来玩个猜年龄的小游戏吧~(◆◡◆)')
time.sleep(2)

print('''
=============================
   干物妹!うまるちゃんの年齢
=============================
''')
time.sleep(1)


print('小埋的真实年龄在1到10之间哦~')
time.sleep(1)


print('不过,你只有5次机会哦~')
time.sleep(1)


print('下面,请输入小埋的年龄吧:')


#从0至10产生一个随机整数,并赋值给变量age
age = random.randint(1,10)


#设置次数
for guess in range(1,6):
   
   #输入玩家猜测的年龄
    choice=int(input())
    
    #判读玩家输入的年龄是否等于正确的年龄
    if choice<age:
        print('小埋的提示:你猜小了(;´д`)ゞ。。。。')
                
    elif choice>age:
        print('小埋的提示:乃猜大了惹(>﹏<)~~')
            
    else: 
        print('猜了'+str(guess)+'次,你就猜对惹~hiu(^_^A;)~~~')
        break   
                
#判断猜测次数 
if choice  == age:
    print('搜噶~那么小埋下线了~拜拜~( ̄︶ ̄)↗')
    
else:
    print('哎呀~你还是木有猜对啊~但是你只有5次机会诶~怎么办啊~')
    print('那好吧~心软的小埋只好告诉你,我才'+str(age)+'岁哦~(*/ω\*)')

你好,我是机器人小埋,我们来玩个猜年龄的小游戏吧~(◆◡◆)

=============================
   干物妹!うまるちゃんの年齢
=============================

小埋的真实年龄在1到10之间哦~
不过,你只有5次机会哦~
下面,请输入小埋的年龄吧:
5
小埋的提示:你猜小了(;´д`)ゞ。。。。
9
小埋的提示:乃猜大了惹(>﹏<)~~
7
小埋的提示:你猜小了(;´д`)ゞ。。。。
8
猜了4次,你就猜对惹~hiu(^_^A;)~~~
搜噶~那么小埋下线了~拜拜~( ̄︶ ̄)↗

成功猜中小埋的年龄了吗?除了print()函数和变量赋值之外,这段代码里还用到了条件判断if语句、input()函数,这两个知识点我们会在第2个关卡和第3个关卡学习到喔。

在学完基础语法的前半部分之后,你也能独立写一个这样的项目,设计你的专属“小埋”!所以,不要小看了我们今天所学的知识,它将是我们未来大项目的开端。

而这一关卡里,我们掌握了命令思维——对计算机下“打印”的指令。但是,在与计算机沟通的道路上,我们的学习才刚刚开始。

在学完整个Python基础语法课程后,你将会真正迈入Python的大门,掌握利用Python解决问题的方法和思维。

除了文字和数字之外,还可以灵活运用print()函数,打印出带特殊格式的东西

pikaqiu=('''

へ     /|
  /\7    ∠_/
  / │   / /
 │ Z _,< /   /`ヽ
 │     ヽ   /  〉
  Y     `  /  /
 イ● 、 ●  ⊂⊃〈  /
 ()  へ    | \〈
  >ー 、_  ィ  │ //
  / へ   / ノ<| \\
  ヽ_ノ  (_/  │//
  7       |/
  >―r ̄ ̄`ー―_

''')

print(pikaqiu)

へ     /|
  /\7    ∠_/
  / │   / /
 │ Z _,< /   /`ヽ
 │     ヽ   /  〉
  Y     `  /  /
 イ● 、 ●  ⊂⊃〈  /
 ()  へ    | \〈
  >ー 、_  ィ  │ //
  / へ   / ノ<| \\
  ヽ_ノ  (_/  │//
  7       |/
  >―r ̄ ̄`ー―_

知识点回顾:

print()函数

print()函数为打印函数,如括号内数据带引号,print()函数会原样打印引号内的数据。

转义字符

\n 代表换行;\' 代表单引号。

三引号

三引号可以把内容里的单引号打印出来且可以换行

小练习:

Python由荷兰数学和计算机科学研究学会的Guido van Rossum 于1990 年代初设计,作为一门叫做'ABC'语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。

请你把这段话按照下面的格式打印出来:

Python由荷兰数学和计算机科学研究学会的Guido van Rossum,

于1990 年代初设计,

作为一门叫做 'ABC' 语言的替代品。

Python提供了高效的高级数据结构,

还能简单有效地面向对象编程。

步骤讲解:

方法一:
1.复制文字
2.文本中有引号的地方,需要用到转义引号\'
3.需要换行的地方用 \n

方法二:
1.复制文字
2.使用三引号将文字括起来

print('Python由荷兰数学和计算机科学研究学会的Guido van Rossum,\n于1990 年代初设计,\n作为一门叫做\'ABC\'语言的替代品。\nPython提供了高效的高级数据结构,\n还能简单有效地面向对象编程。')

Python由荷兰数学和计算机科学研究学会的Guido van Rossum,
 于1990 年代初设计,
作为一门叫做'ABC'语言的替代品。 
Python提供了高效的高级数据结构,
还能简单有效地面向对象编程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值