Python全栈笔记(二)

第二章 快速入门

1. 编码

在正式开始学习Python语法之前,我们需要先来学习一下有关计算机编码的知识点,即:计算机中所有的数据本质上都是以0和1的组合来存储

例如:你用window的文本编辑器写了一篇文章,并保存在自己电脑的【D:\论文.txt】中.
img

本质上在电脑的D盘存储的文件的内容是一大堆的0和1的组合:0101010101101000011…

那么 问题 来了:我们写的文字是怎么变成0和1的组合的呢?

一般在文件保存时会让你选择以某种编码保存。
而编码类似于一个密码本,为文字和0/1创建对应关系,
所以在文件保存时候会根据编码的对应关系找到其对应的0/1写入到硬盘文件中。
计算机中有很多中编码方式,例如:gbk和utf-8,编码之间有什么区别呢?每种编码都有自己的一套密码本,都维护这自己的一套规则。所以,使用的不同的编码保存文件时,硬盘的文件中存储的0/1也是不同的。

**注意:**保存文件使用某种编码,打开文件时就必须使用此编码,否则就会出现乱码。

2. 初体验

在Pycharm中创建一个任意python文件(一般Python文件都是以 .py 后缀),并写入以下代码并运行。
img

我们把这个过程分为两步:
【第一步】创建py文件 & 写代码。
【第二步】保存代码文件,注意右下角黄色字体显示,此py文件是以utf-8编码保存(默认)。
【第三步】解释器运行代码文件,由于py文件是以utf-8编码保存,所以在Python解释器运行文件时也需要使用utf-8编码去打开并运行。代码文件顶部# -*- coding:utf-8 -*-的作用就是告诉Python解释器用utf-8编码去打开并运行此py代码文件。

如果代码文件是以gbk编码保存,那么文件的头部应该写成 # -*- coding:gbk -*-,这样解释器就会以gbk编码去打开并运行代码文件。

3. 输出

输出,目的将代码中结果或提示呈现给用户,让用户可以看到。
格式:print("要输出的内容")

  • 默认输出要占一行,因为print的结束时默认会加换行符 end="\n"

    # -*- coding: utf-8 -*-
    print("开始")
    print("看这风景美如画,")
    print("本想吟诗赠天下,")
    print("怎奈自己没文化,")
    print("只能卧槽浪好大。")
    print("结束")
    
    # 输出结果:
    开始
    看这风景美如画,
    本想吟诗赠天下,
    怎奈自己没文化,
    只能卧槽浪好大。
    结束
    
  • 不换行,加入

    end=""
    

    表示print结束时不再加

    \n
    

    而换成空。

    # -*- coding: utf-8 -*-
    print("开始")
    print("看这风景美如画,",end="")
    print("本想吟诗赠天下,",end="")
    print("怎奈自己没文化,",end="")
    print("只能卧槽浪好大。")
    print("结束")
    # 输出结果:
    开始
    看这风景美如画,本想吟诗赠天下,怎奈自己没文化,只能卧槽浪好大。
    结束
    

4. 数据类型:str/int/bool

刚上学时,老师教我们 数字 、拼音、汉字、真假判断 等,然后我们根据学到的内容写作文,老师来检查并打分。

现在学编程,我教大家 int、str、bool 等,然后大家根据这些内容来写代码,写完代码交给Python解释器去运行。

4.1 int(整型)

整型,其实就是以前数学课上讲的整数(不包含小数),在写代码时用于表示整数相关的东西,例如:年龄、存款、尺寸、手机号等。
一般我们提到的:5、18、22、99、… 等整数 在Python中都称为是整型,且支持 加/减/乘/除/取余/指数 等操作。

# 创建整型 666,并使用并使用print输出
print(666)
# 计算 2 加 10 的结果,并使用print输出
print(2+10)
# 计算 2 乘以 10 的结果,并使用print输出
print(2*10)
# 计算 10 除以 2 的结果,并使用print输出
print(10/2)
# 计算 10 除以 3 得的余数,并使用print输出
print(10%2)
# 计算 2 的 4 次方,并使用print输出
print(2**4)

注意:print在此处只起到输出结果的作用,与加减乘数无关。 # 是单行注释,# 后面的内容不会被解释器当做代码处理,个人可以用他做解释说明,方便理解。

4.2 str(字符串)

字符串,其实就是我们生活中的文本信息。例如:姓名、地址、自我介绍等。
字符串有一个特点,他必须由引号引起来,如:

# 创建字符串"Jesse",并使用print输出
print("Jesse")
# 创建字符串 "中国北京昌平区",并使用print输出
print("中国北京昌平区")
# 创建字符串 "我是谁?我是永远都得不到的爸爸呀!",并使用print输出
print("我是谁?我是永远都得不到的爸爸呀!")

注意:print在此处只起到输出结果的作用。

在整型中支持整型之间的加减乘除,在字符串中则支持字符串的 加、乘。

  • 字符串拼接(相加)格式: “字符串A” + “字符串B” ,要求字符串只能和字符拼接。
  • 字符串相乘格式: 整型 * “字符串”,效果就是让此字符串重新出现多少次,要求必须是整型和字符串相乘。
# 两个字符串 "金角" + "你是大王吧" 相加(一般称字符串相加为字符串拼接),并使用print输出
# 代码内部会先做字符串拼接,再调用print输出凭借后结果
print( "金角"+"你是大王吧" ) 
# 整型和字符串拼接(错误,不支持)
print(  5+"乔碧萝" ) 
# 整型和字符串相乘,得到字符串 "小逼崽子小逼崽子小逼崽子"
print( 3*"小逼崽子" )

4.3 bool(布尔值)

布尔值,其实就是我们生活通过某种判断得到的真、假。例如: 1大于2是假 、 66等于99是假、字符串”二货”等于字符串”李杰”是假、1小于7是真、字符串”admin”等于字符串”admin”是真、字符串”666”等于整型666是假。

布尔值中只有两个值:True(真)/False(假)。

# 判断 1大于2 是True/False?并使用print输出
print( 1>2 )
# 判断 66等于99 是True/False?并使用print输出
print( 66==99 )
# 判断 字符串"二货"等于字符串"李杰" 是True/False?并使用print输出
print( "二货"=="李杰"  )
# 判断 1小于7是True/False?并使用print输出
print( 1<7 )
# 判断 字符串admin等于字符串admin是True/False?并使用print输出
print( "admin"=="admin")
# 判断 字符串666 等于整型 666 是True/False?并使用print输出
print( "666"==666 )

4.4 类型转换

上文数据类型int/str/bool有了初步了解,他们都有自己不同的定义方式。

  • 整型定义时,必须是数字且无引号,例如:5、8、9
  • 字符串定义时,必须用双引号括起来,例如:”中国”、”武沛齐”、”666”
  • 布尔值定义时,只能写True和False

不同的数据类型都有不同的功能,例如:整型可以加减乘除 而 字符串只能加(拼接)和乘法。
如果想要做转换可遵循一个基本规则:想转换什么类型就让他包裹一些。例如:str(666)是将整型转换为字符串、int(“888”)是将字符串转换为整型,具体转换示例如下:

转为整型:

# ####### 字符串转整型的格式为:int(字符串) #######
print( int("666") )
print( int("100") + int("200") )
# 报错,“hula”应该转换为数字多少呢?没法确定。所以Python规定只有 "数字" 格式的字符串的才能转为整型。print( int("hula") )
# 分别输出整型: 666、300、报错

# ####### 布尔值转整型的格式为:int(布尔值) #######
print( int(True) )
print( int(False) )

# 布尔值转换为整型,分别输出:1 、 0

转为字符串:

# ####### 整型转字符串的格式为:str(整型) #######
print( str(666)+str(999) )
# 整型转换为字符串,然后两个字符串拼接,最终输出字符串:666999
# ####### 布尔值转字符串的格式为:str(布尔值) #######
print( str(True) )print( str(False) )
print( str(True) + str(False) )
# 布尔值转换字符串,分别输出三个字符串:True 、 False 、 TrueFalse

转布尔值:

# ####### 整型转布尔值的格式为:bool(整型) #######
print(1)
print(9)
print(-100
)print(0)
# 整型转换为布尔值,分别输出布尔值:True 、 True 、 True 、 False
# 注意:整型转布尔值时,只有0转换为False,其他均为True

# ####### 字符串转布尔值的格式为:bool(字符串) #######
print("你好")
print("fuck you")
print("666")
print("0")
print("")
# 字符串转换为布尔值,分别输出:True、True、True、True、False
# 注意:整型转布尔值时,只有空字符串转换为False,其他均为True

以上就是三种数据类型的相互转换,第一次学可能会让你觉得比较知识点太多,记不住!!! 所以,我们来对转换做一个总结,方便记忆:

  • 想要转换成什么类型,就要用什么来包裹一下。(int/str/bool)
  • 字符串转整型时,只能转那些引号内是数字的字符串,例如:”88”、”99”,否则报错
  • 其他类型转布尔值时,只有 0 和 “” 会转为False,其他均为True

注意:类型转换不是改变原来值,实际在底层是新创建了一个值。例如有整数注意:类型转换不是改变原来值,而是新创建了一个新的值。例如有整数 6 ,然后使用 str(6) 转化了一下得到 “6”,实际上这个字符串”6”是依据整数6新创建的。

5. 变量

变量,其实就是我们生活中起别名和外号,让变量名指向某个值,格式为: 【变量名 = 值】,以后可以通过变量名来操作其对应的值。例如:

age = 18
name = "Jesse"
flag = 1 > 18
address = "湖南长沙" + name
print(age) # 输出 18
print(name) # 输出 Jesse
print(flag) # 输出 False
print(address) # 输出 湖南长沙Jesse

5.1 变量名

Python中的变量名不是随便定义的,关于变量名的定义需要遵循如下规范:

  • 三条规范(必须遵循,否则定义变量会报错)

    • 变量名只能由 字母、数字、下划线 组成。
    • 变量名不能以数字开头。
    • 变量名不能是Python内置关键字,如:
      [‘and’, ‘as’, ‘assert’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
  • 二条建议(遵循可以显得更加专业,不遵循也可以正常运行不报错)

    • 下划线命名法,多个单词表示的变量名用下划线连接(均小写)

      father_age = 58
      father_name = "Jesse"
      brother_name = "Alex"
      
    • 见名知意,通过阅读变量名就能知道此变量的含义。

      age = 18
      color = "red"
      current_user_first_name = "勒布朗"
      
总结
  • 变量可以是任意的数据类型,在程序中用一个变量名表示
  • 变量名必须是大小写英文,数字和下划线(_)的组合,且不能以数字开头,如:
>>>> a = 1 #变量a是一个整数
>>>> name = "Jesse" #变量name是一个字符串
  • 赋值(比如a=“ABC”)时,Python解释器干了两件事
  1. 在内存中创建一个"ABC"的字符串
  2. 在内存中创建一个名为a的变量,并把它指向"ABC"

5.2 标识符和关键字

  • 什么是关键字

python一些具有特殊功能的标识符,这就是所谓的关键字
关键字,是python中已经使用的,所以不允许开发者自己定义和关键字相同名字的标识符

  • 查看关键字
>>>import keyword
>>>keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

6. 注释

写代码时候,如果想要对某写内容进行注释处理,即:解释器忽略不会按照代码去运行。

  • 单行注释,对一行或一行中某一段内容进行注释,格式:#号还开头。

    # 单行注释,解释器忽略此行,不按照代码去解释此行代码。
    name = 'alex'
    age = 18 # 单行注释,解释器忽略#后面的内容,不按照代码去解释。
    
  • 多行注释,对多行进行注释。

    """
    一行
    又一行
    注释多行,三引号括起来的内容解释器会忽略,不按照代码去解释代码。
    """
    

7. 输入

学了上面的那些知识点,我们就可以实现 先定义一些数据类型 然后再让这些数据类型进行一些操作,最终通过print来进行输出。 所以 通过上述的知识点只能完成规定死的逻辑,最终输入得到结果。

那么问题来了,如果想要实现用户交互怎么做呢? 例如:

  • 让用户输入账号和密码,代码检测用户名密码是否正确?
  • 让用户输入数字,代码判断数字进行抽奖。

这些功能均需要让用户输入一些值,然后我们根据用户输入的值进行相应的操作,接下来咱们就来学习如何让用户可以输入一些内容,然后咱们对输入的内容进行操作:

# 第一步:执行 input('请输入用户名:') ,输出区域 会提示用户来输入"请输入用户名"
# 第二步:在下方任意输入,输入之后点击回车;之后会讲输入的内容赋值给name变量,name就代指你输入的内容
name = input('请输入用户名:')
# 第三步:输出name变量代指的值,即:输出刚才输入的内容
print(name)

img

特别注意 :基于input输入的内容是字符串类型,即使输入了一个数字。

示例1:提示输入姓名,然后给姓名后面拼接一个“烧饼”,提示输入姓名,然后给姓名后面拼接一个“烧饼”,最终打印结果。

name = input("请输入姓名:")
text = name + "烧饼"
print(text)

示例2:提示输入姓名/位置/行为,然后做拼接并打印:xx 在 xx 做 xx 。

name = input("请输入姓名:")
address = input("请输入位置:")
action = input("请输入行为:")

data = name + "在" + address + action
print(data)

示例3:提示输入两个数字,计算两个数的和。

num1 = input("请输入一个数字:")
num2 = input("请再输入一个数字:")
value = int(num1) + int(num2)
print(value)

8. 条件语句

生活中我们经常说:如果 XX,就XX。如果 XX,就XX,否则就 XX。

如果我是女生,就让我那些单身20年的哥们好好爽爽。
如果我是你爸,我就特么天天揍你。
如果把Alex变成狗,就天天喊他狗崽子。
如果我有1000w,就去找各种大模,否则就只能找大妈了。

在Python代码中想根据条件不同做不同操作,就可以使用if条件语句,他的书写个数如下:

if 条件 :
    条件成立,则执行这一块代码
else :    
    条件不成立,则执行这一块代码

# 如果条件不成立不做任何操作,就可以else省去,只有:

if 条件:    
    条件成立,则执行这一块代码

注意:if和else下面的代码块都需要有相同缩进(建议4个空格)

7.1 基本条件语句

关于条件语句我们通过示例代码来进行讲解,例如:

  • 示例 1

    print("开始")
    if 5 == 5:    
        print("原来5等于5")
    else:    
        print("5居然不等于5")
    print("结束")
    
  • 示例 2:

    if 5 == "5":    
        print("整数5等于字符串5")
    else:   
        print("整数5居然不等于字符串5")
    
  • 示例 3:

    num = 19
    if num > 10:    
        print("num变量对应值大于10")
    else:    
        print("num变量对应值不大于10")
    
  • 示例 4:

    username = "wupeiqi"
    password = "666"
    
    if username == "wupeiqi" and password == "666":    
        print("恭喜你,登录成功")
    else:    
        print("登录失败")
    
  • 示例 5:

    username = "wupeiqi"
    if username == "wupeiqi" or username == "alex":    
        print("VIP大会员用户")
    else:    
        print("普通用户")
    
  • 示例 6:

    number = 19
    if number%2 == 1:    
        print("number是奇数")
    else:    
        print("number是偶数")
    
  • 示例 7

    print("开始")
    if 5 == 5:    
        print("原来5等于5")
    print("结束")
    

7.2 多条件判断

如果判断逻辑中有多个条件,分别对应多个操作,可以是使用条件语句的if elif 实现,格式如下:

if 条件A:    
    条件A成立则执行此处代码
elif 条件B:    
    条件A不成立,条件B成立,则执行此处代码
elif 条件C:    
    条件A/B都不成立,条件C成立,则执行此处代码...
else:    
    以上条件都不成立,则执行此处代码(如果没有功能,也可以把else省略)

示例: 用户输入数字,判断是否等于6,如果大于6则输出 太大了,小于6则输出 太小了,等于6则提示 刚刚好

num = input("请输入数字")
data = int(num)
if data > 6:    
    print("太大了")
elif data == 6:    
    print("刚刚好")
else:    
    print("太小了")

7.2 条件语句嵌套

条件语句可以进行嵌套,用以完成更加复杂的条件判断。

嵌套时候,一定要注意通过缩进来区分代码快之间的关系。

if 条件A:    
    if 条件B :        
        写代码...    
    else:        
        写代码...
elif 条件C:    
    写代码...
else:    
    if 条件D:        
    写代码...

示例:模拟10086客服提醒。

print("欢迎致电10086,我们提供了如下服务: 1.话费相关;2.业务办理;3.人工服务")
n1 = input("请选择要咨询的服务序号")
number = int(n1)
if number == 1:    
    cost = input("查询花费请按1;交话费请按2;")    
    if cost == "1":        
        print("话费剩余100元")    
    elif cost == "2":        
        print("缴纳话费10000元成功")    
    else:        
        print("输入错误")
elif number == 2:    
    cost = input("宽带业务请按1;协议款余额请按2;")    
    if cost == "1":        
        print("已免费给你家装宽带了")    
    elif cost == "2":        
        print("协议款余额为0")    
    else:        
        print("输入错误")
elif number == 3:    
    print("客服007号为您服务")
else:    
    print("序号输入错误,没有相关服务")

9. 作业(Done)

  1. 谈谈你了解的编码以及为什么会出现乱码的现象?

    编码:
    ASCII: python2默认的编码,一个字母是8位
    Unicode(万国码):一个字母是32位
    UTF - 8:万国码的压缩码,最少用一个字节,最多用4个字节,一个中文是三个字节,24
    位
    GBK: 专门用作汉文的编码,其中一个中文用两个字节
    
    乱码现象:保存文件使用的编码和打开文件使用的编码不一致时,就会出现乱码现象。
    
  2. 用print打印出下面内容:

    ⽂能提笔安天下,武能上⻢定乾坤.⼼存谋略何⼈胜,古今英雄唯是君。
    
    参考答案:
    print("⽂能提笔安天下,武能上⻢定乾坤.⼼存谋略何⼈胜,古今英雄唯是君。")
    
  3. 变量名的命名规范和建议?

    • 三条规范(必须遵循,否则定义变量会报错)
      • 变量名只能由 字母、数字、下划线 组成。
      • 变量名不能以数字开头。
      • 变量名不能是Python内置关键字
    • 二条建议(遵循可以显得更加专业,不遵循也可以正常运行不报错)
      • 下划线命名法,多个单词表示的变量名用下划线连接(均小写)
      • 见名知意,通过阅读变量名就能知道此变量的含义。
    
    
  4. 设定一个理想数字比如:66,让用户输入数字,如果比66大,则显示猜测的结果大了;如果比66小,则显示猜测的结果小了;只有等于66,显示猜测结果正确。

    参考答案:
    ideal = 66
    num = int(input("请输入数字:"))
    if num < ideal:
        print("猜测的结果小了")
    elif num > ideal:
        print("猜测的结果大了")
    else:
        print("猜测结果正确")
    
  5. 提⽰⽤户输入⿇花藤. 判断⽤户输入的对不对。如果对, 提⽰真聪明, 如果不对, 提⽰你 是傻逼么。

    参考答案:
    user_input = input("请按提示输入麻花藤:")
    if user_input == "麻花藤":
        print("真聪明")
    else:
        print("你 是傻逼么。")
    
  6. 写程序,成绩有ABCDE5个等级,与分数的对应关系如下.

    A    90-100
    B    80-89
    C    60-79
    D    40-59
    E    0-39
    

    要求用户输入0-100的数字后,你能正确打印他的对应成绩等级.

    参考答案:
    score = int(input("请输入分数:"))
    if score >100:
        print("请输入正确的分数(0-100)")
    elif score >=90:
        print("A")
    elif score >=80:
        print("B")
    elif score >=60:
        print("C")
    elif score >=40:
        print("D")
    elif score >=0:
        print("E")
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值