Day02 快速上手

Day02 快速上手

课程目标:学习python最基础的语法知识,可以用代码快速实现一些简单的功能

课程概要:

  • 初始编码(密码本)
  • 编程初体验
  • 输出
  • 初始数据类型
  • 变量
  • 注释
  • 输入
  • 条件语句

1.编码(密码本)

计算机中所有的数据本质上都是以0和1的组合来存储的。

image-20211226204418557

在计算机中会将中文内存转化成010101.....,最终存储到硬盘上。

在计算机中有那么一个编码的概念(密码本)。

    武     ->      01111111 00011010 010110110
    沛     ->      01001111 10010000 001110100
    齐     ->      11111111 00000000 010101010

在计算机中有很多种编码。

每种编码都有自己的一套密码本,都维护这自己的一套规则,如:
    utf-8编码:
        武     ->      01111111 00011010 010110110
        沛     ->      01001111 10010000 001110100
        齐     ->      11111111 00000000 010101010
    gbk编码:
        武     ->      11111111 00000010
        沛     ->      01001111 01111111
        齐     ->      00110011 10101010
所以,使用的不同的编码保存文件时,硬盘的文件中存储的0/1也是不同的。

注意事项:

​ 以某种编码的形式进行保存文件,就要用这种编码打开这个文件!

如果用UTF-8编码去保存武沛齐:01111111 00011010 010110110  01001111 10010000 001110100 11111111 00000000 010101010
GBK编码形式去打开:乱码

2.编程初体验

  • 编码必须保持一致(写入和读取)

  • 默认Python解释器是以UTF-8的形式读取文件

  • 更改默认解释器读取编码为GBK

  • 建议:所有python代码文件的编码都要以UTF-8 保存和读取

    # -*- coding:gbk -*-
    
    print("hello word")
    

3.输出

将结果或数据呈现给用户。

print("hello word")
print("                                                            * *  ")
print("                                                         * * * *  ")
print("                                                      * * * * * *  ")
print("                                                   * * * * * * * *  ")
print("                                                * * * * * * * * * *  ")
print("                                             * * * * * * * * * * * *  ")
print("                                              * * * * * * * * * * * *  ")
print("                                               * * * * * * * * * * * *  ")
print("                                      * *       * * * * * * * * * * * *  ")
print("                                   * * * *       * * * * * * * * * * * *  ")
print("                                * * * * * *       * * * * * * * * * * * *  ")
print("                             * * * * * * * *       * * * * * * * * * * * *  ")
print("                          * * * * * * * * * *       * * * * * * * * * * * *  ")
print("                       * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("                        * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("                         * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("                * *       * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("             * * * *       * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("          * * * * * *       * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("       * * * * * * * *       * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("    * * * * * * * * * *       * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print(" * * * * * * * * * * * *       * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("  * * * * * * * * * * * *       * * * * * * * * * * * *       * * * * * * * * * * * *  ")
print("   * * * * * * * * * * * *       * * * * * * * * * * * *       * * * * * * * * * * * *  ")

关于输出:

  • 默认在print尾部会加换行符:

    print("看看风景美如画")
    print("本想吟诗增天下")
    
    输出:
    看看风景美如画
    本想吟诗增天下
    
    
  • 不想再print尾部加换行

    print("看着风景美如画", end = ",")
    print("本想吟诗增天下", end = "。")
    
    输出:
    看看风景美如画,本想吟诗增天下。
    

4.初始数据类型

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

现在学编程,武沛齐交我们int,str,bool等,然后大家根据这些内容来写代码,写完代码交给python解释器去运行

4.1 整型(int)

整型,整数。

print语句 输出结果 运算符 运算符含义
print( 2+10 ) 12 + 相加
print( 2*10 ) 20 * 相乘
print( 10/2 ) 5 / 整除
print( 10%3 ) 1 % 取余
print( 2**4 ) 16 **

4.2字符串(str)

编写字符串时用单/双/三引号(英文的单/双/三引号)

print("中国北京")   # 双引号
print('中国天津')   # 单引号
print("""中国北京昌平区""")   # 三引号(可以表示多行字符串)

对于字符串运算:

  • 加:两个字符串可以通过加号拼接起来

    print("小明同学" + "是三好学生")
    输出:
    小明同学是三好学生
    
  • 乘:整型*字符串,用来实现让字符串重复出现N次拼接起来

    print(10 * "hello word")
    输出:
    hello wordhello wordhello wordhello wordhello wordhello wordhello wordhello wordhello wordhello word
    
    

4.3 布尔类型(bool)

布尔类型中共有两个值:True,False

print(1 > 2)
输出:
False

print(1 == 1)
输出:
True
name = input("请输入你的用户名:")

if name == "alex":       # True
    print("用户登陆成功")
else:                    # false
    print("用户登陆失败")

补充:

1 == 1
可以比较整型之间

2 > 3
可以比较两个字符串之间

1 == "alex"
整型和字符串之间只可以比较是否相等,不可以比较大小 

4.4 类型装换

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

  • int, 整型定义时,必须是数字且无引号,例如:5、8、9

  • str,字符串定义时,必须用双引号括起来,例如:"小明"、"hello word"

  • bool,布尔值定义时,只能写True,False

    不同的数据类型都有不同的功能,例如:整型可以加减乘除,而字符串只能加(拼接)和乘法。

    如果想要做转换可遵循一个基本规则:想转换什么类型,就用这个类型的包裹什么,例如:str(666),int(666)等等

    转换为整型:

    # 字符串转换为整型
    int("666")
    int("999")
    
    "6" + "9"  # 两个字符串进行拼接,结果:字符串“69”
    int(6) + int(9)  # 结果:15
    
    # 报错
    int("hello word")
    
    # 布尔类型转换为整型
    int(True)    # 转换完等于1
    int(False)   # 转换完等于0
    

    转换为字符创:

    # 整型转换字符串
    str(345)
    str(666) + str(9) = 6669
    
    # 布尔类型转换为字符串
    str(True)   "True"
    str(False)  "False"
    

    转换为布尔类型:

    # 整型转化布尔类型
    bool(1)  True
    bool(2)  True
    bool(-3) True
    bool(0)  False
    bool类型转换的只有0为false
    
    # 字符串转布尔
    bool("alex")  True
    bool("")  False
    只有空字符串转换的结果为False, 其余的全是True
    
  • 三句话搞定类型转换:

    • 其他所有类型转换为布尔类型时,除了空字符串和0以外,其他都是True

    • 字符串转整型是,只有以字符串形式“998”格式的字符串才可转换为整型,其他都报错

    • 想要转换为哪种类型,就用这种类型的英文包裹一下就行。

      str(...)
      int(...)
      bool(...)
      

5.变量

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

name = "小明"

print(name) # 小明
age = 18
name = "alex"
flag = 1 > 18  # false
address = "中国北京"+"昌平"
addr = "中国北京" + "昌平" + name # 中国北京昌平alex

print(addr)
print(flag)
注意事项:
age = 18
number = 1 = 2  # false

注意:

  • 给变量赋值age=18
  • 让age代指age=18

5.1 变量名的规范

ge = 18
name = "alex"
flag = 1 > 18  # false
address = "中国北京"+"昌平"

三个规范:(只要有一条就会报错)

  • 只能包含字母数字下划线
  • 不能用数字开头
  • 不能用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’]*

两个建议:

  • 下划线连接命名(小写)

    school_name = "清华大学"
    
  • 见名知意

    age = 18
    color = "red"
    

练习题:

name = "吉诺比利"
name0 = "帕克"
name_1 = "邓肯"
_coach = "波波维奇"
_ = "卡哇伊"
1_year = "1990" # 错误
year_1_ = "1990"
_1_year = "1990"
nba-team = "马刺" # 错误
new*name = "伦纳德" # 错误

5.2变量的内存指向关系

情景一

name = "wupeiqi"

在计算机的内存中创建一块区域保存字符串值"xiaoming",name变量名则指向这块区域。

image

情景二

name = "wupeiqi"
name = "alex"

在计算机的内存中创建一块区域保存字符串"xiaoming",name变量名则指向这块区域,然后又再内存中创建了一块区域保存字符串”xiaohong“,name变量名则指向”alex”所在的区域,不再指向”小明”所在区域(无人指向的数据会被标记为垃圾,由解释器自动化回收)

image

情景三

name = "wupeiqi"
new_name = name

在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域。new_name变量名指向name变量,因为被指向的是变量名,所以自动会转指向到name变量代表的内存区域。

image

情景四

name = "wupeiqi"
new_name = name
name = "alex"

在计算机的内存中创建一块区域保存字符串”wupeiqi”,name变量名则指向这块区域(灰色线), 然后new_name指向name所指向的内存区域,最后又创建了一块区域存放”alex”,让name变量指向”alex”所在区域.

image

情景五

num = 18
age = str(num)

在计算机的内存中创建一块区域保存整型18,name变量名则指向这块区域。通过类型转换依据整型18再在内存中创建一个字符串”18”, age变量指向保存这个字符串的内存区域。

image

至此,关于变量的内存相关的说明已讲完,由于大家都是初学者,关于变量的内存管理目前只需了解以上知识点即可,更多关于内存管理、垃圾回收、驻留机制等问题在后面的课程中会讲解。

6.注释

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

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

  • 单行注释

    # 声明一个name变量
    name = "alex"
    
    age = 19 # 这表示当前用户的年龄
    
    注意:快捷点 command + ?  、   control + ?
    
  • 多行注释

    # 声明一个name变量
    # 声明一个name变量
    # 声明一个name变量
    name = "alex"
    
    
    """
    多行注释内容
    多行注释内容
    多行注释内容
    """
    age = 19
    

7. 输入

输入,可以实现程序和用户之间的交互。

# 1. 右边 input("请输入用户名:") 是让用户输入内容。
# 2. 将用户输入的内容赋值给name变量。
name = input("请输入用户名:")

if name == "alex":
  print("登录成功")
else:
  print("登录失败")
data = input(">>>")
print(data)

特别注意:用户输入的任何内容本质上都是字符串

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

    name = input("请输入用户名:")
    text = name + "烧饼"
    print(text)
    
  2. 提示输入 姓名/位置/行为,然后做拼接并打印:xx 在 xx 做 xx 。

    name = input("请输入用户名:")
    address = input("请输入位置:")
    action = input("请输入行为:")
    
    text = name + "在" + address + action
    print(text)
    
  3. 提示输入两个数字,计算两个数的和。

    number1 = input("请输入一个数字:") # "1"
    number2 = input("请输入一个数字:") # "2"
    
    value = int(number1) + int(number2)
    print(value)
    

8.条件语句

if 条件 :
    条件成立之后的代码...
    条件成立之后的代码...
    条件成立之后的代码...
else:
    条件不成立之后执行的代码...
    条件不成立之后执行的代码...
    条件不成立之后执行的代码...
name = input("请输入用户名:")
if name == "alex":
  print("sb")
else:
  print("db")

提醒:统一缩进问题(都是使用四个空格 = tab)。

name = input("请输入用户名:")
if name == "alex":
    print("sb")
   print("sb")
else:
    print("db")

8.1 基本条件语句

  • 示例1

    print("开始")
    if True:
      print("123")
    else:
      print("456")
    print("结束")
    
    # 输出结果
    开始
    123
    结束
    
  • 示例2

    print("开始")
    if 5==5:
      print("123")
    else:
      print("456")
    print("结束")
    
  • 示例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是偶数")
    
    number = 19
    data = number%2 == 1
    if data:
    	print("number是奇数")
    else:
    	print("number是偶数")
    
  • 示例7

    if 条件:
      成立
    
    print("开始")
    if 5 == 5:
      print("5等于5")
    print("结束")
    

8.2 多条件判断

if 条件A:
  A成立,执行此缩进中的所有代码
  ...
elif 条件B:
  B成立,执行此缩进中的所有代码
  ...
elif 条件C:
  C成立,执行此缩进中的所有代码
  ...
else:
  上述ABC都不成立。
num = input("请输入数字")
data = int(num)
if data>6:
  print("太大了")
elif data == 6:
  print("刚刚好")
else:
  print("太小了")
score = input("请输入分数")
data = int(score)

if data > 90:
  print("优")
elif data > 80:
  print("良")
elif data > 70:
  print("中")
elif data > 60:
  print("差")
else:
  print("不及格")

8.3 条件嵌套

if 条件A:
  ...
elif 条件B:
  ...
if 条件A:
    if 条件A1:
        ...
    else:
   	    ...
elif 条件B:
    ...

模拟10086客服

print("欢迎致电10086,我们提供了如下服务: 1.话费相关;2.业务办理;3.人工服务")

choice = input("请选择服务序号")

if choice == "1":
    print("话费相关业务")
    cost = input("查询话费请按1;交话费请按2")
    if cost == "1":
        print("查询话费余额为100")
    elif cost == "2":
        print("交互费")
    else:
        print("输入错误")
elif choice == "2":
    print("业务办理")
elif choice == "3":
    print("人工服务")
else:
    print("序号输入错误")

总结

  1. 什么是编码?打开文件时为什么会出现乱码?
  2. pycharm如何设置文件编码?
  3. python解释器去打开代码文件时,默认使用编码是什么?如何修改?
  4. print输入
  5. 各数据类型格式 以及 相关之间如何实现转换?
  6. 变量的命名规范
  7. 用户通过input输的内容均为字符串类型。
  8. 条件语句。
posted @ 2021-12-30 22:51  Coilin  阅读(48)  评论(0编辑  收藏  举报