Python学习笔记Day01(变量\数据类型\if条件语句)

Python学习笔记Day01

计算机

概述

  • 计算机软件(software):简称软件,是一系列按照特定顺序组织的计算机数据和指令的集合
  • 编程语言(programming language):是一形式语言,它制定了一组可用于产生各种输出的指令
  • 计算机程序(computer program):简称程序,是由计算机执行的执行特定任务指令的集合

容量

1位 = 1bit
8bit = 1byte = 1字节
1024bytes = 1kbytes =1KB
1024KB = 1Million Bytes = 1MB = 1兆
1024MB = 1Gigabytes
1024GB = 1TB
1024TB = 1PB


什么是python语言?

由荷兰人Guido Van Rossum在1989年创建

是一种解释型、面向对象、动态数据类型的高级程序设计语言

python语言的优点

  • 简单易用

  • 大量的功能类库支持

  • 语言兼容性

  • 跨平台移植性

  • 代码免费开源


解释器/编译器

在linux中指定解释器的路径

#!/usr/bin/env python
# _*_ coding:uft-8 _*_

print("你好")

运行:解释器 文件路径

在Linux上有一种特殊的执行方法

给文件赋予一个可执行的权限

/a.py 自动去找文件的第一行=#!/usr/bin/env python a.py


编码

交互式解释器

  • 编译器(compile):把高级语言一次性翻译成计算机能识别的机器语言的一种软件

    • 全部翻译,再执行。执行速度快
  • 解释器(interpreter):把高级语言编写的程序,在执行时,一行一行地翻译成机器语言的一种软件

    • 边执行边翻译,方便移植

初识编码

  • ASCII,英文,8位表示一个东西,2**8
  • Unicode,万国码,32位表示一个东西,2**32
  • utf-8,给Unicode压缩,用尽量少的位数表示一个东西,以8个位为单位。最多用4字节=32位表示。中文:3字节=24位表示
  • utf-16:压缩到最少2个字节
  • gbk:
  • gb2312:

python解释器编码

  • py2:ASCII

    • 在文件头部加上:# * coding:utf-8 *
  • py3:utf-8

文件编码

  • 建议:编写文件时,保存文件要用utf-8格式

  • 以什么编码保存,就要用什么编码方式打开(编码+解码一致),否则会出现乱码


注释

#:单行注释

“”"

多行注释

“”"


输入

user_name = input("请输入你的姓名:")
message = user_name + "烧饼"
print(message)

注意

  • input输入得到的内容永远是字符串

  • py版本区别

    • py2:name = raw_input(“请输入姓名”)
    • py3:name = input(“请输入姓名”)

练习

user_name = input("请输入你的姓名:")
password = input("请输入你的密码:")

content = "你的用户名是:" + user_name + ";你的密码是:" + password
print(content)

输出

print(你想要输出的东西)

py版本区别

  • py2: print “你好” #print后接空格

  • py3: print(“你好”)


变量

命名规则

  • 变量名只能包含:字母/数字/下划线

  • 数字不能开头

  • 不能是python的关键字

  • 变量名区分大小写

  • 建议

    • 见名知意:name=“Alex” age=18
    • 用下划线链接:Alex_dad=“张三丰”
    • 补充:AlexDad=“张三丰” (驼峰式命名)

命名练习

练习01

age = 18
new_age = age + 1
print(new_age)

练习02

name = "Alex"
new_name = name + "sb"
print(new_name)

练习03

age = "666"
new_age = age + "666"
print(new_age)

练习04

age = "666"
new_age = age + 666
print(new_age)     # 报错

练习05

age = 6
new_age = age * 2
print(new_age)

练习06

name = "Alex"
new_name = name * 2
print(new_name)

练习07

age = 18
value = age >= 19
print(value)

数据类型

字符串string

  • 单引号
  • 双引号
  • 三引号

数字numbers

  • 整型int

    • 没有小数部分
      包含正数,负数,0

      • 二进制:以0b开头的0、1串

        a=0b110
        print(a)
        
      • 八进制:以0o开头的0-7之间的数字串

        a3=0o71 
        print(a3)
        
      • 十六进制:以0x组成的由0-9、a-f构成的串

        a4=0xfff8
        print(a4)
        
  • 浮点型float

    a=.2
    print(a)
    
    • 科学计数法:e后面跟整数用来表示10的指数

      height=1.84e2
      print(height)
      
  • 复数complex

    a=5j
    b=7+2j
    print(a,b)
    
  • py2和py3的区别

    • py2:超出范围后python自动将其转换成长整型long,整型除法只能保留整数位
    • py3:只有int,整型除法保留所有

布尔型bool

  • True
  • False

列表list

元祖tuple

字典dict

集合set

None:表示为没有(通常用来占位或提供空值,表示返回一个空)


数据类型之间的转换

0/""/[]/()(零、空字符串、空列表、空元祖转换为布尔值时结果为False,其他情况全为True)

数字转字符串

v1 = 666
v2 = str(v1)
print = (v2,type(v2))

字符串转数字

v1 = "666"
v2 = int(v1)
print(v2,type(v2))

数字转布尔值

v1 = 0
v2 = bool(v1)
print(v2)

字符串转布尔值

v1 = ""
v2 = bool(v1)
print(v2)

布尔值转换其他

v1 = True
v2 = int(v1)
print(v2)

v1 = True
v2 = str(v1)
print(v2)

特殊转换

对于or,如果遇到这类写法:

第一个值如果转换成布尔值是真,则value=第一个值
第一个值如果转换成布尔值是假,则value=第二个值
如果有多个or条件,则从左到右依次进行上述流程

value = 1 or 9
print(value)

value = 0 or 9
print(value)

value = 0 or ""
print("----",value,"----")

value = 0 or 9 or 8
print(value)

对于and,如果遇到这类写法:

如果第一个值转换成布尔值是True,则value=第二个值
如果第一个值转换成布尔值是False,则value=第一个值
如果有多个and条件,则从左到右依次进行上述流程

v1 = 1 and 9
v2 = 1 and 0
v3 = 0 and 7
v4 = 0 and ""
v5 = 1 and 0 and 9
print(v1,v2,v3,v4,v5)

运算优先级:有括号先算括号,not>and>or,同一优先级则从左往右计算

v1 = 1 and 9 or 0 and 6
print(v1)

条件判断

初级条件语句

让用户输入性别,如果是男则输出:再见;如果是女则输出:来呀来呀

gender = input("请输入性别:")

if gender == "男":
    print("再见")
else:
    print("来呀来呀")

elif 条件

让用户输入性别,如果是男,则输出:再见;如果是女,则输出:来呀来呀;如果是人妖:找Ted去,他也是;否则:滚

gender = input("请输入性别:")

if gender == "男":
    print("再见")
elif gender == "女":
    print(来呀来呀)
elif gender == "人妖":
    print("找Ted去,他也是")
else:
    print("滚")
print("end")

最简单

gender = input("请输入性别:")     #女

if gender == "男":
    print("再见")

条件判断练习

练习01:让用户输入一个数字,猜:如果数字>50,则输出:大了;如果数字<=50,则输出:小了

num = input("请输入一个数字:")
number = int(num)

if number > 50:
    print("大了")
else:
    print("小了")

练习02:用户名密码登陆

user_name = input("请输入用户名:")
password = input("请输入密码:")

if user_name == "Ted" and password == "1234":
    print("欢迎光临")
else:
    print("用户名或密码错误")

练习03:评分规则

A>=90
B>=80
C>=70
D 其他
用户输入成绩,根据成绩的不同显示不同的级别

score = int(input("请输入成绩:"))
if score >= 90:
    print("A")
elif score >=80:
    print("B")
elif score >=70:
    print("C")
else:
    print("D")

练习04(if条件的嵌套):10086

message = """欢迎致电10086
1.话费查询;
2.流量服务;
3.业务办理;
4.人工服务"""
print(message)

index = int(input("请输入你要选择的服务:"))
if index == 1:
    print("话费查询")
elif index == 2:
    print("流量服务")
elif index == 3:
    content = """业务办理
    1.修改密码;
    2.更改套餐;
    3.停机;"""
    print("content")
    value = int(input("请输入要办理的业务:"))
    if value == 1:
        print("修改密码")
    elif value == 2:
        print("更改套餐")
    elif value == 3:
        print("停机")
    else:
        print("错误")
elif index == 4:
    print("人工服务")
else:
    print("输入错误")

综合习题

习题01

v1 =[11,22,33]
v2 =v1
v1.append(666)
print(v2)

习题02

v1 = [11,22,33]
v2 = v1
v1 = [1,2,3,4]
print(v2)

习题03

v1 = "alex"
v2 = v1
v1 ="ritian"
print(v2)

习题04

v = [1,2,3]
values = [11,22,v]
v.append(9)
print(values)

v = [1,2,3]
values = [11,22,v]
values[2].append(99)
print(v)

v = [1,2,3]
values = [11,22,v]
v = 99
print(values)

v = [1,2,3]
values = [11,22,v]
values[2] = 66
print(v)

习题05: ==和is有什么区别?

v1 = [1,2,3]
v2 = [1,2,3]
print(v1 == v2)    #比较的是值
print(v1 is v2)    #比较的是内存地址

查看内存地址

v1 = [1,2,3]
v2 = [1,2,3]
print(id(v1),id(v2))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章