day02快速上手

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

课程概要:

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

1. 编码

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

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

每种编码都有自己的一套密码本,都维护自己的一套规则,如:
utf-8编码:
刘   ->    01111111 000110101 0100110101
小     ->    01000100 000011100 1011001010
伟   ->    10101011 011110100 1110011101
gkb编码
刘   ->    00010111 110100111 1101001001
小     ->    01000100 000011100 1011001010
伟   ->    11101101 111010110 0101100110
所以,使用的不同的编码保存文件时,硬盘的文件中存储的0/1也是不同的

注意:以某个编码的形式保存文件,以后就要以这种编码去打开这个文件,否则就会出现乱码

2. 编程体验

  • 编码必须要保持:保存和打开一致,否则会乱码

  • 默认Python解释器UTF-8编码的形式打开文件。如果想要修改Python的默认解释器编码,可以如下形式:

    # -*- coding:gbk -*-
    print('我是你二大爷')
    
  • 建议:所有Python代码文件都以UTF-8编码保存和读取。

3. 输出

将结果或内容想要呈现给用户

print("看着风景美如画")
print(adidas)

关于输出

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

    print('看这风景美如画')
    print('本想吟诗赠天下')输出:看这风景美如画本想吟诗赠天下
  • 想要补换行,可以这样做:

    print('看这风景美如画', end='')
    print('本想吟诗赠天下', end='')输出:
    看这风景美如画本想吟诗赠天下
    

    练习题

print('输出自己的姓名:刘小伟')# 换行输出
print('春眠不觉晓,')
print('处处闻啼鸟。')
print('夜来风雨声,')
print('花落知多少。')# 一行输出
print('春眠不觉晓,', end='')
print('处处闻啼鸟。', end='')
print('夜来风雨声,', end='')
print('花落知多少。', end='')输出:
输出自己的姓名:刘小伟
春眠不觉晓,
处处闻啼鸟。
夜来风雨声,
花落知多少。
春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。

4. 初识数据类型

4.1 整型(int)

整型、整数

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

print(666)print(2 + 10)print(2 * 10)print(20 / 4)print(10 % 3)print(5 // 3)

4.2 字符串(str)

字符串,其实就是我们生活中等文本信息,例如:姓名,地址,自我介绍等

字符串有一个特点,必须由引号引起来,如:

单行字符串

print("我是Bruce_liu")print('中国北京昌平区')输出:
我是Bruce_liu
中国北京昌平区

多行字符串

print('''dfasfsakfjsakjfajfksa;kfsad;klfafas;
fasfjsakfsklafjklsa
fsadjksa;fasjdkfa;f;sa;f
fdsajklfjdas;f''')输出:
dfasfsakfjsakjfajfksa;kfsad;klfafas;
fasfjsakfsklafjklsa
fsadjksa;fasjdkfa;f;sa;f
fdsajklfjdas;f

对于字符串,运算符只支持两种:

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

    "alex" + '是金角大王吧'
    'alex是金角大王吧'print("alex" + '是金角大王吧')
    print('alex是金角大王吧')输出:
    alex是金角大王吧
    alex是金角大王吧
    
  • 乘,让整型和字符串进行相乘,以实现让字符串重复出现N次并拼接起来

    print('我想吃饺子' * 3)输出:
    我想吃饺子我想吃饺子我想吃饺子
    

4.3 布尔类型(bool)

布尔类型总共两个值:True / False

1 > 2
1 == 1输出:
False
True
name = input('请输入用户名:')
if name == 'Alex':print('用户登陆成功!')
else:print('用户登陆失败!')

4.4 类型转换

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

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

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

如果想要做转换可遵循一个基本规则:想转换什么类型就让它包裹一下。例如:str(666)是将整型转换为字符串、int(‘888’)是将字符串转为整型。

转为整型:

# 字符串转换整型
int("666")
int('999')
"6" + "9" 结果是"69"
int("6") + int("9") 结果是15# 布尔类型转换为整型
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(0) False
bool(-10) True# 字符串转布尔类型
bool('alex') True
bool('fdasfda') True
bool('') False
bool(' ')  True

三句话搞定类型转换

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

  • 字符串转整型时,只有那种“988”(数字型)格式的字符串才能转为整型,其他都报错

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

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

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

练习题

  1. 计算整型50乘以10再除以5的商并使用print输出
  2. 判断整型8是否大于10的结果并使用print输出
  3. 计算整型30除以2得余数并使用print输出
  4. 使用字符串乘法实现把字符串“我爱我的祖国”创建三遍并拼接起来最终使用
  5. 判断字符串"liuxiaowei"和"bruce"是否相等的结果并使用print输出
  6. 判断整型666和整型666是否相等的结果并使用print输出
  7. 判断字符串"666"和整型666是否相等的结果并使用print输出
  8. 看代码写结果(禁止运行代码)
print(int("100")*3)             300
print(int("123") + int("88"))   211
print(str(111)+str(222))  "111222"
print(str(111)*3)     "111111111"
print(int("8")>7) True
print(str(111) == 111) False
print(bool(""))   False
print(bool(-1)) True
print(bool(0)) False
print(bool("你好")) True
print(True == True) True
print(True == False) False
print(bool("") == bool(0)) True
print(50 * 10 / 5)print(8 > 10)print(30 % 2)print('我爱我的祖国' * 3)print('liuxiaowei' == 'alex')print(666 == 666)print(666 == str(666))输出:
100.0
False
0
我爱我的祖国我爱我的祖国我爱我的祖国
False
True
False

5 .变量

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

name = "刘小伟"
print(name)  # 刘小伟
age = 18
name = 'alex'
flag = 1 > 18
address = '北京昌平' + '沙河' + name  # "北京昌平沙河alex"print(addr)
print(flag)
age = 18
number = 1 == 2    # False

注意:

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

5.1 变量名的规范

age = 18
name = 'alex'
flag = 1 > 18
address = '北京昌平' + '沙河'

三个规范:

  • 变量名只能由字母、数字、下划线组成

  • 变量名不能以数字开头

    na9me9 = "alex"
    
  • 不能用Python内置的关键字

    def = 'alex'
    break = 123
    

    [‘and’, ‘as’, ‘assert’, ‘break’ , ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘except’, ‘exec’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’,‘not’, ‘or’, ‘pass’, ‘print’, ‘raise’, ‘return’,‘try’, ‘while’, ‘with’, ‘yield’]

两个建议:

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

    father_name = 'liuxiaowei'
    brother_age = 19
    
  • 见名知意

    age = 18
    color = 'red'
    current_user_name = '吉诺比利'
    n1 = 123    # 不可取
    n2 = 456    # 不可取
    

练习题

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

5.2 变量内存指向关系

通过学习上述变量知识让我们对变量有了初步认识,接下来我们就要从稍高级一些的角度来学习变量,即:内存指向(在电脑的内存中是怎么存储的)

情景一

name = 'liuxiaowei'

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

情景二

name = 'liuxiaowei'
name = 'alex'

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

情景三

name = 'liuxiaowei'
new_name = name

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

情景四

name = "liuxiaowei"
new_name = name
name = 'alex'

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

情景五

num = 18
age = str(num)

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

练习题

  1. 看代码结果

    alex_length = 3
    liuxiaowei_length = 18
    total = alex_length + liuxiaowei_length
    print(total)输出:
    21
    
  2. 按要求写代码

    # 假设age为小明的年龄
    age = 18
    # 问:已知小李比小明大3岁,计算小李年龄赋值给ming_age 变量并输出
    xiaoli_age = age + 3
    ming_age = xiaoli_age
    print(ming_age)
    # 问:已知大刘比小明和小李年龄大和还要大5岁,计算大刘的年龄赋值给liu_age变量并输出
    liu_age = xiaoli_age + ming_age + 5
    print(liu_age)
    
  3. 看代码写结果

    nickname = '一米八大高个'
    username = nicknamenickname = '弟弟'
    print(nickname)  # ‘弟弟’
    print(username)   # '一米八大高个'
    
  4. 看代码写结果

    nickname = '一米八大高个'
    username = nickname
    nickname = '弟弟'print(nickname)  # ‘弟弟’
    print(username)   # '一米八大高个'
    
  5. 看代码写结果

    nickname = '一米八大高个'
    username = '弟弟'
    text = username + nickname
    print(text)   #'弟弟一米八大高个'
    
  6. 看代码写结果

    nickname = '一米八大高个'
    username = nickname
    nickname = '弟弟'text = username + nickname
    print(text)  # '一米八大高个弟弟'
    
  7. 看代码写结果

    string_number = '20'
    num = int(string_number)data = string_number * 3
    print(data)  # '202020'value = num * 3
    print(value)  #60
    

6. 注释

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

  • 单行注释

    # 声明一个name的变量
    name = 'alex'age = 19 # 这表明当前用户的年龄注意:快捷键 command + ?(mac)、 control + ?(windows)
    
  • 多行注释

    """
    多行注释
    多行注释
    """
    

7. 输入

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

# 1. 右边input('请输入用户名:')是让用户输入内容
# 2. 将用户输入的内容赋值给name变量name = input('请输入用户名:')if name == 'alex':print('登陆成功!')
else:print('登陆失败!')
data = input(">>>")
print(data)

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

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

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

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

    num1 = input('请输入一个数字:')  # '1'
    num2 = input('请输入一个数字:')  # '2'value = num1 + num2
    print(value)
    

8. 条件语句

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

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

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

    usernam = 'liuxiaowei'
    password = '666'
    if username == 'liuxiaowei' and password == '666':print('恭喜你,登陆成功')
    else:print('登陆失败')
    
  • 示例5

    username = 'liuxiaowei'if username == 'liuxiaowei' or username == 'alxex':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('结束')
    

练习题

  1. 提示用户输入用户名和密码,用户名等于‘liuxiaowei’且密码等于’uuu’就输出登录成功,否则输出登录失败

    username = input('输入用户名:')
    password = input('输入密码:')if username == 'liuxiaowei' and password == 'uuu':print(f'{username}登录成功')
    else:print(f'{username}登录失败')
    
  2. 猜数字,提示用户输入一个数字,判断数字如果大于10, 就输出猜错了;否则输出猜错了

    number = input('请输入一个数字:')
    if int(number) > 10:print('猜错了')
    else:print('猜对了')
    
  3. 提示用户输入一个数字,判断是否为偶数,是偶数则输出偶数,否则输出奇数

    number = input('请输入一个数字:')
    data = int(number) % 2 == 0
    if data:print(f'{number}是偶数')
    else:print(f'{number}是奇数')
    

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('>>>\n查询话费请按1;交话费按2')if int(cost) == 1:print('查询话费余额为100')elif int(cost) == '2':print('交话费')
elif choice == '2':print('业务办理')
elif choice == '3':print('人工服务')
else:print('序号输入错误')

总结

  1. 什么是编码?打开文件时为什么会出现乱码?
  2. pycharm如何设置文件编码
  3. python解释器去打开代码文件时,默认使用编码是什么?如何修改?
  4. print输入
  5. 各数据类型格式以及相关之间如何实现转换
  6. 变量的命名规范
  7. 用户通过input输入的内容均为字符串类型
  8. 条件语句

今日作业

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

  2. Python解释器默认编码是什么?如何修改?

    默认编码:utf-8
    在文件顶部通过设置:# -*- coding=编码 -*- 实现修改
    
  3. 用print打印出下面内容

    文能提笔安天下,
    武能上马定乾坤。
    心存谋略何人胜,
    古今英雄唯是君。
    
    print('文能提笔安天下,')
    print('武能上马定乾坤。')
    print('心存谋略何人胜,')
    print('古今英雄唯是君。')print('文能提笔安天下,', '\n武能上马定乾坤。', '\n心存谋略何人胜,', '\n古今英雄唯是君。')
    
  4. 变量名的命名规范和建议?

  5. 如下哪个变量名是正确的?

    name = '刘小伟'
    _ = 'alex'
    _9 = '老男孩'
    9name = '宝浪' # 错误
    oldboy(edu = 666 # 错误 出现了字母、数字、下划线以外的字符
    
  6. 设定一个理想数字比如:66, 让用户输入数字,如果比66大,则显示猜测结果正确

    num = input('>>> \n输入一个数字:')
    if int(num) > 66:print('大了')
    elif int(num) < 66:print('小了')
    elif int(num) == 66:print('正确')
    
  7. 提示用户输入"爸爸",判断用户输入的对不对,如果对,提示真聪明,如果不对,提示你是傻逼么

    person = input('>>> 输入爸爸:')
    if person == '爸爸':print('傻逼吗')
    else:print('真聪明')
    
  8. 写程序,成绩有ABCDE5个等级,与分数的对应关系如下:

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

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

    score = input('>>> 输入成绩:')
    if int(score) >= 90 and int(score) <= 100:print('A')
    elif int(score) >= 80 and int(score) < 90:print('B')
    elif int(score) >= 60 and int(score) < 80:print('C')
    elif int(score) >= 40 and int(score) < 60:print('D')
    elif int(score) >= 0 and int(score) < 40:print('E')
    else:print('错误')
    

Python学习笔记---day02快速上手相关推荐

  1. 轩小陌的Python笔记-day02 快速上手

    day02 快速上手 课程目标:学习Python最基础的语法知识,可以用代码快速实现一些简单的功能. 课程概要: 初识编码(密码本) 编程初体验 输出 初识数据类型 变量 注释 输入 条件语句 1.初 ...

  2. JavaEE学习笔记-SpringBoot快速上手、热部署、乱码问题、部分注解解释

    SpringBoot快速上手 一.快速创建SpringBoot应用 1.1利用IDEA提供的Spring Initializr创建Spring Boot应用 1.2Spring Boot生成的项目结构 ...

  3. clojure java math_Clojure学习笔记 02.快速上手

    这一节让我们来了解一下那些"使用Clojure编程必须要掌握的东西". 其实Clojure(以及其他lisp系语言)的学习曲线还是比较陡峭的.学习Clojure之前必须要掌握一些基 ...

  4. oracle 快速上手,Oracle学习笔记:快速上手

    开启服务:先开启Lisenterner服务 再开启ORCL服务 oracle登录 用户: - 管理员 sysDBA - 无密码 - 系统用户 system - manager - 普通用户 scott ...

  5. Python学习笔记--10.Django框架快速入门之后台管理admin(书籍管理系统)

    Python学习笔记--10.Django框架快速入门之后台管理 一.Django框架介绍 二.创建第一个Django项目 三.应用的创建和使用 四.项目的数据库模型 ORM对象关系映射 sqlite ...

  6. day02 快速上手

    day02 快速上手 课程目标:学习Python最基础的语法知识,可以用代码快速实现一些简单的功能. 课程概要: 初识编码(密码本) 编程初体验 输出 初识数据类型 变量 注释 输入 条件语句 1.编 ...

  7. 模块一 day02 快速上手

    day02 快速上手 课程目标:学习Python最基础的语法知识,可以用代码快速实现一些简单的功能. 课程概要: 初识编码(密码本) 编程初体验 输出 初识数据类型 变量 注释 输入 条件语句 1.编 ...

  8. python学习笔记(一)Python 简单介绍

    Python学习笔记(一)Python 简单介绍 Python介绍 Python简介 Python应用领域 Python是解释型的语⾔ 编译和解释的区别是什么? 编译型vs解释型 编译型 解释型 Py ...

  9. 【Python学习笔记】cs231nPython Numpy教程

    [Python学习笔记]cs231nPython Numpy教程 回顾经典教程cs231n,完成assignments觉得很困难,感觉自己python基础语法掌握的不是很熟,就顺藤摸瓜找了cs231n ...

最新文章

  1. 《UNIX环境高级编程》--符号链接
  2. 查询SDE数据库,GSON报错:declares mutiple JSON fields named data
  3. python下载邮箱附件_基于Python3 下载邮箱附件,并解压到指定文件夹
  4. MyEclipes+html+jsp+mysql实现一个物流信息网
  5. 单片机定时器_51单片机的定时器如何计算初值?
  6. 移动端安全测试主要涉及_Android APP安全测试基础
  7. 查找算法------顺序查找
  8. Windows Ubuntu,软件推荐,小技巧总结,免费内网穿透方案
  9. Vplayer:一下团队打造的Android万能播放器
  10. android scheme 参数解析,Android 利用scheme协议进行跳转
  11. 项目助理是打杂的吗_应届生如何着手准备应聘产品助理?
  12. 移动智能终端之应用商店和应用的安全管理机制(笔记四)
  13. 求生之路服务器租用配置要求介绍
  14. 两无线路由器连接方法
  15. 华为智能家居app未能连接上远程云服务_华为云主机远程连接不上 华为云服务登录手机版...
  16. PDF导出图片-python
  17. 大天使之剑服务器维护,大天使之剑部分区服维护公告
  18. Jave中IO的详细总结
  19. 广告投放管理平台 oython源码_【直播】全新腾讯广告投放管理平台如何帮助广告主乘风破浪...
  20. 程序猿最后的愿望是什么?

热门文章

  1. 疯狂!电动汽车科技领域的投资正爆发式增长 | 数据报告
  2. 入门UVM验证方法学
  3. 动车报销凭证怎么取?高铁票的报销凭证在哪里取?
  4. 直播互动软件神器有哪些
  5. DC-DC电源设计[基于MP2315]
  6. 计算机参数含义,电脑内存条参数各有什么含义?
  7. 不小心删除了华为手机备忘录里的内容如何恢复?
  8. 【离散数学】代数系统,半群,独异点(幺半群),群,可交换群(Abel群)之间的关系
  9. 职场智慧:君子应处木雁之间,当有龙蛇之变
  10. 笔记本怎么做wifi热点(xp版)