计算机基础与python入门

本文目录:

一、计算机、cpu与存储器

二、操作系统、编程语言及编写python、变量

三、数据类型、输入输出及基本运算

四、流程控制之if判断、while与for循环

 

 

一、计算机、cpu与存储器  

1. 什么是编程语言

     语言就是一个事物与另外一个事物沟通的介质/表达方式
     编程语言即程序员与计算机沟通的介质
 

2. 什么是编程?为何要编程

     编程就是程序员用计算机所能理解的表达方式(编程语言)来将自己的思维逻辑写下来,编程的结果就是一推文件,这些文件称之为软件/程序
  

3. 编程的目的:

     就是人想要奴役计算机,让计算机代替人类去工作,从而解放人力

4. 运行程序的三大核心硬件:

   cpu:运行+控制
   内存
       优点:存取速度快
       缺点:断电数据丢失
   硬盘
      优点:可以永久保存数据,断电数据也不丢失
      缺点:存取速度慢

   重要:
      运行程序,硬件的工作过程:
       程序最先存放于硬盘
       程序要运行必须从硬盘加载到内存
       cpu去内存中取出指令->翻译->执行
  
  1一个二进制位称之为1bit
     1Bytes=8bit
     1KB=1024Bytes
     1MB=1024KB
     1GB=1024MB
     1TB=1024GB
     1PB=1024TB
 
 

二、操作系统、编程语言及编写python、变量 

操作系统

  1. 什么是操作系统
       操作系统是一个协调\管理\控制计算机硬件资源与软件资源的一个控制程序
  2. 为何要有操作系统
       1. 把复杂硬件操作封装成简单的功能/接口用来给用户或者应用程序使用(文件)
       2. 把应用程序多硬件的竞争变得有序
  3. 如何用操作系统
      一套完整的计算机系统分为三层:
                应用程序层
                操作系统层
                计算机硬件层

编程语言分类

  1. 机器语言(直接操作硬件):直接使用二进制指令去编写程序
        优点:计算机无障碍理解,运行效率非常高
        缺点:开发效率低
 
  2. 汇编语言(直接操作硬件):使用英文标签代替二进制指令去编写程序
        优点:比起机器语言开发效率高
        缺点:开发效率比机器语言高,但仍然比较低
 
  3. 高级语言:直接使用人能力理解的表达方式去编写程序
        问题是计算机无法直接理解,程序是需要经过翻译才能被计算机理解执行的,按照
 
      翻译方式的不同,分为两种:           
       1. 编译型C:谷歌翻译
                 优点:执行效率高于解释型
                 缺点:开发效率低于解释型
            2. 解释型Python:同声传译
                 优点:开发效率高于编译型
                 缺点:执行效率低于编译型
   
    执行效率:机器语言>汇编语言>编译型>解释型
       开发效率:解释型>编译型>汇编语言>机器语言

编写python

    执行python程序有两种方式:
    1. 交互式环境:输入代码立即执行
       优点:调试程序方便
       缺点:无法永久保存程序
 
    2 代码写入文件,文件的名test.py
            打开cmd执行:python3 D:\test.py
            优点:永久保存程序
 

变量

    1. 什么是变量
        量:衡量/计量/记录某种状态
        变:记录下来的某种状态是可以发生变化的
 
    2. 为何要用变量
        为了让计算机能够像人一样去识别世间万物,
        如何识别,就是把事物的特征记录下来=>变量的定义
 
    3. 如何用变量
        变量的使用必须遵循:先定义,后引用
# 一: 定义变量
x=10
name = 'egon'
age=18
salary=3.1
# 定义一个变量分为三部分:
# 1. 变量名:变量名是访问到值的唯一方式
# 2. 赋值符号:将值的内存地址"赋值"给变量名
# 3. 变量的值:记录状态
# print(age)


# 二: 变量名的命名规范:
# 大前提:变量名的命名应该对值有描述性的功能
#1. 变量名只能是 字母、数字或下划线的任意组合
#2. 变量名的第一个字符不能是数字
#3. 关键字不能声明为变量名

# 三: 变量名的命名风格:
# 1. 驼峰体:
# OldboyOfAge=73
# 2. 下划线纯小写式
# oldboy_of_age=73
# 在python中变量名的命名推荐使用2

# 补充:!!!!!!运行python程序的三个阶段!!!!!!
# python3 D:\test.py
# 1. 先启动python解释器
# 2. python解释器将python文件由硬盘读入内存
# 3. python解释器解释执行刚刚读入内存的代码,开始识别python语法


# 引用计数:计算值被关联了多少个变量名
# 引用计算一旦为零就是垃圾,会被python的垃圾回收机制自动清理
# 引用技术增加
# x=10
# y=x

# 引用技术减少
# x=10
# del x # 解除变量名与值10内存地址的绑定关系
# x=11

x=1111

  变量剩余  

#一 变量值具备三个特征:
# 1. id: 变量值的唯一编号,内存地址不同id则不同
# 2. type:类型
# 3. value

# name='egon'
# print(id(name))
# age=18
# print(id(age))

# x=10
# y=x
# print(id(x),id(y))

# age=10
# print(id(age))
# print(type(age))
# print(age)


#二: is与==
#is身份运算:比较的是id是否相等
#==判断值是否相等

x=10
y=x
print(id(x),id(y))
print(x is y) #id相等,值一定相等
print(x == y)


'''
值相等id不一定相等
>>> x=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
>>> y=111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
>>> id(x)
2181129522824
>>> id(y)
2181129523040
>>> x is y
False
>>> x == y
True
'''

# x=100000000000000000000000000000000000000
# y=100000000000000000000000000000000000000
print(x is y)


# 三 常量
OLDBOY_OF_AGE=73
OLDBOY_OF_AGE=74
print(OLDBOY_OF_AGE)

 

三、数据类型、输入输出及基本运算

基本数据类型

'''
1. 什么是数据类型
    变量值即我们存放的数据,数据类型及变量值的类型

2. 变量值为何要区分类型
    因为变量值使用记录现实世界中事物的特征,针对不同的特征就应该用不同类型的值去标识

3. 如何应用数据类型
'''

# 一 数字类型:
# 1. 整型int: 年龄\身份证号\电话号码\等级
# age=18 # age=int(18)
# print(id(age),type(age),age)

# 2. 浮点型float:薪资\身高\体重
# salary=3.1 #salary=float(3.1)
# print(id(salary),type(salary),salary)

# 二 字符串类型str: 名字\家庭住址\单个爱好\性别等等描述性质的特征
# 定义:在引号(单引号\双引号\三引号)内包含一串字符
# name1='egon'
# name2="egon"
# name3="""egon"""
# print(type(name1))
# print(type(name2))
# print(type(name3))
# msg='my name is "egon"'
# print(msg)

msg1='hello'
msg2='world'
# res=msg1 + msg2
# print(res,type(res))
# print(msg1)
# print('='*100)
# print(msg2)

# 三 列表list: 记录多个值,比如人的多个爱好,一个班级多个学生的性别
#定义:在[]内用逗号分隔开多个任意类型的值
l=[1,3.1,'aa',['a','b','c',['aaaa','bbbb']]]
# print(l)
# print(l[0])
# print(l[2])
# print(l[3][1])
# print(l[3][3][0])


# 四 字典dict: 记录多个key:value值,
# 引子:
# students=['egon','lxx','yxx']
# print(students[0])

#     name   age  sex  level hobbies
# info=['egon',18,'male',10,['music','read','dancing']]
# print(info[0])
# print(info[2])

# 定义:在{}内用逗号分隔开多个key:value的值,其中value可以是任意数据类型,
# 而key通常应该是字符串类型
info={
    'name':'egon',
    'age':18,
    'sex':'male',
    'level':10,
    'hobbies':['music','read','dancing']
} #info=dict(...)
# print(type(info))
# print(info['level'])
# print(info['age'])
# print(info['hobbies'][1])

# emp_info={
#     'name':'egon',
#     'hobbies':['play','sleep'],
#     'company_info':{
#         'name':'Oldboy',
#         'type':'education',
#         'emp_num':40,
#     }
# }
# print(emp_info['company_info']['name'])



# 五: 布尔类型bool: True/False,用来标识条件是否成立
# age=18
#
# print(age > 30)
# print(age < 30)

# 所有类型的值都自带布尔值: 当数据类型的值为0,None,空时,布尔值为False,除此以外都为True
# print(bool(0))
# print(bool(None))
# print(bool(''))
# print(bool([]))
# print(bool({}))
# print(bool(1))

if None:
    print('条件成立了11确实大于10的')

 

输入输出

# 在python3中的input会将用户输入的任何内容都存成str类型
# name=input("请输入您的用户名: ") #name="egon"
# pwd=input("请输入您的密码: ") #pwd='123'

# if name == 'egon' and pwd == '123':
#     print('登陆成功')
# else:
#     print('用户名或者密码输错了傻叉')

# 了解:
# 在python3中只有一个input,而python2中有input和raw_input
# 1.其中python2的raw_input与python3的input是一样
# 2 不一样的是:python2的input要求使用者必须输入一个明确的数据类型,输入什么类型就存成什么类型
# age=input('>>>: ') #age="18"
# print(age,type(age))
# age=int(age) #age=int("18") #age=18
# print(age > 30)

# name=input('请输入您的用户名: ')
# age=input('请输入您的年龄: ')

# print('my name is my age is ',name,age)
# print('my name is ',name,'my age is ',age)

# print('my name is %s my age is %s' %(name,age))
# print('my name is %s my age is %s' %([1,2,3],18)) #%s可以收任意类型的值
# print('my name is %s my age is %d' %('egon',18))
# print('my name is %s my age is %d' %('egon','18')) #%d只能接收整型

 

基本运算符

#1 算术运算
# print(10 + 1.1)
# print(10 / 3) # 有整数部分有余数部分
# print(10 // 3) # 去掉小数部分
# print(10 % 3) #取余
# print(2 ** 3)
#2 比较运算
#比较运算只能在同类型之间进行,其中int与float同属于数字类型
# print(10 > 3.1)
# print(10 >= 10)
# 了解
# msg1='abcdefg'
# msg2='abce'
# print(msg2 > msg1)
# list1=['a',1,'b']
# list2=['a',2]
# list2=['a','b']
# list2=['c','b']
# print(list2 > list1)
#3 赋值运算
#3.1 增量赋值
# age=18
# age=age + 1
# age+=1 # age=age+1
# print(age)
# x=10
# x%=3 #x=x%3
# print(x)
#3.2 链式赋值
# x=10
# y=x
# print(x is y)
# a=b=c=d=e=111
# print(a is b is c is d is e)
#3.3 交叉赋值
# x=10
# y=20
#
# temp=x
# x=y
# y=temp
# x,y=y,x
# print(x,y)
#3.4 解压赋值
nums=[1,2,3,4,5]
# a=nums[0]
# b=nums[1]
# c=nums[2]
# d=nums[3]
# e=nums[4]
# a,b,c,d,e=nums
# print(a,b,c,d,e)
# a,b,c,_,_=nums #_=5
# print(a,b,c)
# print(_)
# a,b,*_=nums #
# print(a,b)
#4 逻辑运算:and,or,not
# and:连接左右两个条件,两个条件必须都成立,最后结果才为True,一旦左边条件为假则最终结果就为假,没有必要再去计算右面条件的值
# print(1 > 2 and 3 > 1)
# or:连接左右两个条件,两个条件但凡有一个成立,结果就为True,一旦左边条件为True则最终结果就为True,没有必要再去计算右面条件的值,
#                                                      一旦左边条件为False,还需要去计算右面条件的值,如果为True,最终也True
# not:取反
# print(not 1 > 2 or 3 > 1)
# print(not 1 > 2)
print((True and (False or True)) or (False and True))
#5 身份运算:is与==

 

四、流程控制之if判断、while与for循环

if判断

# for循环主要用于循环取值
student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb']

# i=0
# while i < len(student):
#     print(student[i])
#     i+=1

# for item in student:
#     print(item)

# for item in 'hello':
#     print(item)

# dic={'x':444,'y':333,'z':555}
# for k in dic:
#     print(k,dic[k])


# for i in range(1,10,3):
#     print(i)

# for i in range(10):
#     print(i)

student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb']
# for item in student:
#     print(item)

for i in range(len(student)):
    print(i,student[i])

 

while循环

'''
1. 什么是循环
    循环指的是一个重复做某件事的过程

2. 为何要有循环
    为了让计算机能够像人一样重复做某件事
3. 如何用循环

'''
# while循环的语法:while循环又称为条件循环,循环的次数取决于条件
'''
while 条件:
    子代码1
    子代码2
    子代码3
'''
# print('start....')
# while True:
#     name=input('please your name>>: ')
#     pwd=input('please your password>>: ')
#     if name == 'egon' and pwd == '123':
#         print('login successful')
#     else:
#         print('user or password err')
# print('end...')

# 如何结束while循环
# 方式一:操作while循环的条件让其结束
# print('start....')
# tag=True
# while tag:
#     name=input('please your name>>: ')
#     pwd=input('please your password>>: ')
#     if name == 'egon' and pwd == '123':
#         print('login successful')
#         tag=False
#     else:
#         print('user or password err')
#
# print('end...')

# 方式二: break强行终止本层循环
# count=1
# while count < 6:
#     print(count)
#     count+=1


# count=1
# while True:
#     if count > 5:
#         break
#     print(count)
#     count+=1


# print('start....')
# while True:
#     name=input('please your name>>: ')
#     pwd=input('please your password>>: ')
#     if name == 'egon' and pwd == '123':
#         print('login successful')
#         break
#     else:
#         print('user or password err')
#
# print('end...')


# 输错三次则退出
# 方式一:
# print('start....')
# count=0
# while count <= 2: #count=3
#     name=input('please your name>>: ')
#     pwd=input('please your password>>: ')
#     if name == 'egon' and pwd == '123':
#         print('login successful')
#         break
#     else:
#         print('user or password err')
#         count+=1
#
# print('end...')


# 方式二
# print('start....')
# count=0
# while True:
#     if count == 3:
#         print('输错的次数过多傻叉')
#         break
#     name=input('please your name>>: ')
#     pwd=input('please your password>>: ')
#     if name == 'egon' and pwd == '123':
#         print('login successful')
#         break
#     else:
#         print('user or password err')
#         count+=1
#
# print('end...')


# while+continue:continue代表结束本次循环,直接进入下一次
# count=1
# while count < 6:
#     if count ==  4:
#         count+=1
#         continue # 只能在cotinue同一级别之前加代码
#     print(count)
#     count+=1
#
#
# while True:
#     print('11111')
#     print('22222')
#     print('333')
#     continue # 不应该将continue作为循环体最后一步执行的代码


# while+else
# count=1
# while count < 6:
#     if count == 4:
#         break
#     print(count)
#     count+=1
# else:
#     print('会在while循环没有被break终止的情况下执行')



# 输错三次则退出之while+else的应用
# print('start....')
# count=0
# while count <= 2: #count=3
#     name=input('please your name>>: ')
#     pwd=input('please your password>>: ')
#     if name == 'egon' and pwd == '123':
#         print('login successful')
#         break
#     else:
#         print('user or password err')
#         count+=1
# else:
#     print('输错的次数过多')
#
# print('end...')



# while循环的嵌套
# name_of_db='egon'
# pwd_of_db='123'
# print('start....')
# count=0
# while count <= 2: #count=3
#     name=input('please your name>>: ')
#     pwd=input('please your password>>: ')
#     if name == name_of_db and pwd == pwd_of_db:
#         print('login successful')
#         while True:
#             print("""
#             1 浏览商品
#             2 添加购物车
#             3 支付
#             4 退出
#             """)
#             choice=input('请输入你的操作: ') #choice='1'
#             if choice == '1':
#                 print('开始浏览商品....')
#             elif choice == '2':
#                 print('正在添加购物车....')
#             elif choice == '3':
#                 print('正在支付....')
#             elif choice == '4':
#                 break
#         break
#     else:
#         print('user or password err')
#         count+=1
# else:
#     print('输错的次数过多')
#
# print('end...')




# tag控制所有while循环
name_of_db='egon'
pwd_of_db='123'
tag=True
print('start....')
count=0
while tag:
    if count == 3:
        print('尝试次数过多')
        break
    name=input('please your name>>: ')
    pwd=input('please your password>>: ')
    if name == name_of_db and pwd == pwd_of_db:
        print('login successful')
        while tag:
            print("""
            1 浏览商品
            2 添加购物车
            3 支付
            4 退出
            """)
            choice=input('请输入你的操作: ') #choice='1'
            if choice == '1':
                print('开始浏览商品....')
            elif choice == '2':
                print('正在添加购物车....')
            elif choice == '3':
                print('正在支付....')
            elif choice == '4':
                tag=False

    else:
        print('user or password err')
        count+=1

print('end...')

for循环

# for循环主要用于循环取值
student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb']

# i=0
# while i < len(student):
#     print(student[i])
#     i+=1

# for item in student:
#     print(item)

# for item in 'hello':
#     print(item)

# dic={'x':444,'y':333,'z':555}
# for k in dic:
#     print(k,dic[k])


# for i in range(1,10,3):
#     print(i)

# for i in range(10):
#     print(i)

student=['egon','虎老师','lxxdsb','alexdsb','wupeiqisb']
# for item in student:
#     print(item)

for i in range(len(student)):
    print(i,student[i])

 

              

                            
                            

              

                            

   
                            

                             

               

              

       

                     

 

                    

 

                

              

         

        

       

        

posted @ 2018-09-15 14:38  仗剑煮大虾  阅读(259)  评论(0编辑  收藏  举报