s22期pythonDay1

Posted 独孤。。。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了s22期pythonDay1相关的知识,希望对你有一定的参考价值。

一、内容概要

1、Python 介绍
2、Python 版本
3、编写Hello World
4、编码
5、输入输出
6、变量
7、数据类型
8、条件语句
9、循环语句
10、常用数据类型

二、内容详细

1、Python 介绍
       Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。
最新的TIOBE排行榜,Python赶超PHP占据第五!!!

   由上图可见,Python整体呈上升趋势,反映出Python应用越来越广泛并且也逐渐得到业内的认可!!!

   Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业 都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、 Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司广泛使用Python来做的事一般有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。

1.1、为什么是Python而不是其他语言?
C 和 Python、Java、C#等
C语言: 代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作
其他语言: 代码编译得到 字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行
Python 和 C Python这门语言是由C开发而来
对于使用:Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.
对于速度:Python的运行速度相较与C,绝逼是慢了
Python 和 Java、C#等
对于使用:Linux原装Python,其他语言没有;以上几门语言都有非常丰富的类库支持
对于速度:Python在速度上可能稍显逊色
所以,Python和其他语言没有什么本质区别,其他区别在于:擅长某领域、人才丰富、先入为主。
1.2、Python的种类
Cpython
Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
Jyhton
Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
IronPython
Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
PyPy(特殊)
Python实现的Python,将Python的字节码字节码再编译成机器码。
RubyPython、Brython ...

2、python解释器版本

→Python2.7

→Python3.6

2.1、python安装

windows:

2.1.1、下载安装包

https://www.python.org/downloads/

2.1.2、安装

默认安装路径:C:\\python36

2.1.3、配置环境变量

【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】

如:原来的值;C:\\python36,切记前面有分号

环境变量:

Python配置:

;C:\\Python36;

终端:python 

pip配置:

;C:\\Python36\\Scripts

终端:pip3 install xxxx

;C:\\Python36;C:\\Python36\\Scripts;

linux:

无需安装,原装Python环境

3. 编写程序

创建任意文件.py

print(\'hello world\')

4. 编码

ascii:用1个字节=8位来表示计算机能表达的所有东西。

 ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:28 = 256,所以,ASCII码最多只能表示 256 个符号。

00000000 -> A

00000001 -> B

00000010 -> C 

00000011

00000100

unicode: 万国码,用4个字节=32位来做对应关系

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 16 = 65536,

00000000 00000000 00000000 00000000 -> A

00000000 00000000 00000000 00000001 -> B

00000000 00000000 00000000 00000010 -> C 

00000000 10000000 00010000 00011010 -> 紫

utf-8: 对万国码进行压缩,至少使用1个字节表示

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

00000000

00000001

00000010

10000000 00010000 00011010

PS: 中文3个字节=24位 

gbk:对亚洲国家的文字做的对应关系

PS: 中文2个字节=16位

注意:


py2: 解释器默认编码ascii
#解释器默认编码utf-8
print(\'王紫薇\') 
py3:解释器默认编码utf-8
print(\'要睡觉\') 
py2/py3:#-- coding:gbk --
print(\'要睡觉\')


4.1. IDE

→pycharm

→vim 
使用:

  1. 启动Pycharm:选择已存在的解释器
  2. 运行
  3. 配置
  4. 文字大小
  5. 模板

5. 输入输出 
输出:
print("你是风儿我是沙")
输入:
user = input("请输入用户名:") 
密码加密:
import getpass
pwd = getpass.getpass("请输入密码:") #需要在终端进行密码验证(密文)

6.变量
变量的作用:昵称,其代指内存里某个地址中保存的内容
变量定义的规则:

  1. 变量名只能是 字母、数字或下划线的任意组合
  2. 变量名的第一个字符不能是数字

以下关键字不能声明为变量名
[\'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\']
建议:见名知意; user_pwd = "xxx"

6.1、示例

 

7. 数据类型
age = 18     # 整数类型
name = "alex"  # 字符串类型
xx = "18"
xx = \'18\'
xx = \'\'\'18\'\'\'
xx = """18"""
xx = "123\'
8. 条件语句 
格式一:
if 条件:
成功之后走这里 
格式二:
if 条件:
成功之后走这里
else:
失败之后走这里
格式三:
if 条件:
成功之后走这里
elif 条件:
成功之后走这里
elif 条件:
成功之后走这里
else:
上述都失败
示例:

9. 循环语句 

while 条件:
条件成立执行
while True:
  print(\'钓鱼要钓刀鱼,刀鱼要到岛上钓\')
while 1==1 and 2==2:
  print(\'钓鱼要钓刀鱼,刀鱼要到岛上钓\')
timer = 0
while timer < 3:
  print(\'钓鱼要钓刀鱼,刀鱼要到岛上钓\')
timer = timer + 1
  print(\'完成\') 

示例:
练习1: 页面上输出 1 - 10   
 count = 1
 while count < 11:
   print(count)
 count = count + 1
break,强制终止当前所在循环
  while True:
    print(\'钓鱼要钓刀鱼,刀鱼要到岛上钓\')
     break  
练习2: 页面上输出 1 - 10 (使用break)
  count = 1
  while True:
    print(count)
  count = count + 1
  if count == 11:
        break

 count = 1
  while True:
    print(count)
  if count == 10:
       break
  count = count + 1
continue,跳出本次循环,继续下一次循环
  练习题3:页面上输出 1 - 10,排除7
    count = 1
    while count < 11:
      if count == 7:
    count = count + 1
        continue
    print(count)
    count = count + 1
    第二种:    
    count = 1
    while count < 11:
    if count == 7:
            pass
    else:
         print(count)
    count = count + 1

10.常用数据类型
整数
age = 18 
字符串:
name = "紫薇"
n1 = name[0] #获取紫
n2 = name[1] #获取薇
列表
user_list = ["紫薇","尔康","18","海量","小鸡"]
n3 = user_list[0] #紫薇
n4 = user_list[1] # "尔康"
user_list = ["紫薇","尔康","18","海量","小鸡"]
for xxx in user_list:
print(xxx)
if xxx == \'18\':
break
字典
user_info = {"name":"紫薇","age":18}
n5 = user_info["name"] #获取紫薇
n6 = user_info["age"] #获取18

  user_info[\'count\'] = 666
        #{"name":"紫薇","age":18,"count":666}

    数据类型嵌套:
        n7 = ["alex","eric",[11,22,33]]
        n7[1]   # 获取 eric
        n7[2][1]  #获取 11

        n8 = [
            "alex",
            {\'name\':\'日天\',\'age\':18},
            [11,22,33]
        ]
        n8[1]["age"] = 19 #修改键值对

        问题1: 循环用户列表,打印用户姓名和密码
            user_list = [
                {\'username\':\'alex\', \'password\':\'123\', \'count\':0 },
                {\'username\':\'eric\', \'password\':\'123\', \'count\':0 },
                {\'username\':\'tony\', \'password\':\'123\', \'count\':0 },
                {\'username\':\'oldboy\', \'password\':\'123\', \'count\':0 },
            ]

            for item in user_list:
                print(item[\'username\'],item[\'password\'],item[\'count\'])

        问题2: 将每个用户的count改成1
            user_list = [
                {\'username\':\'alex\', \'password\':\'123\', \'count\':0 },
                {\'username\':\'eric\', \'password\':\'123\', \'count\':0 },
                {\'username\':\'tony\', \'password\':\'123\', \'count\':0 },
                {\'username\':\'oldboy\', \'password\':\'123\', \'count\':0 },
            ]
            for item in user_list:
                if item[\'username\'] == \'alex\' and item[\'password\'] == \'123\':
                    item[\'count\'] = 1
                print(item)

        问题3: 用户输入用户名和密码,在user_list中进行校验
            user_list = [
                {\'username\':\'alex\', \'password\':\'123\' },
                {\'username\':\'eric\', \'password\':\'123\'},
                {\'username\':\'tony\', \'password\':\'123\'},
                {\'username\':\'oldboy\', \'password\':\'123\'},
            ]
            user = input("请输入用户名:")
            pwd = input("请输入密码:")
            flag = False 
            for item in user_list:
                if item[\'username\'] == user and item[\'password\'] == pwd:
                    flag = True 
                    break
                else:
                    pass
            if flag:
                print("登录成功")
            else:
                print("登录失败")
View Code

11、课后练习题
11.1 求1-100所有数的和

#!/usr/bin/env python
# -*- coding:utf-8 -*-
value = 0
 i = 1
 while i < 101:
        value = value + i
    i = i + 1
 print(value)

11.2 求1-100内的所有奇数

 #!/usr/bin/env python
 # -*- coding:utf-8 -*-
 i = 1
 while i < 101:
     if i % 2 == 1:
         print(i)
     i = i + 1

11.3 求1-100内所有偶数

 #!/usr/bin/env python
 # -*- coding:utf-8 -*-
 i = 1
 while i < 101:
     if i % 2 == 0:
         print(i)
     i = i + 1

11.4 求1-2+3-4+5 ... 99的所有数的和

#!/usr/bin/env python
#-*- coding:utf-8 -*-
i = 1
n = 2
while  n < 100:
      i =  i - n
      n = n + 1
      i = i + n
      n = n + 1
print(i)
第二种
 i =1
 sum = 0
 while True :
         if i % 2 ==0 :
             i = -i
         sum = sum + i
         i = abs(i) + 1
         if i == 100 :
              break
   print(sum)

11.5 用户登录(3次机会)

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

# 用户登录三次失败并直接退出
# i = 0
# while i < 3:
#     username = input(\'请输入用户名:\')
#     password = input(\'请输入密码:\')
#     if username == \'oldboy\' and password == \'boss\':
#         print(\'登录成功\')
#         break
#     else:
#         print(\'用户名或密码失败\')
#     i = i + 1

#用户登录三次失败并退出
user_list = [
             {\'username\':\'alex\', \'password\':\'123\' },
             {\'username\':\'eric\', \'password\':\'123\'},
             {\'username\':\'tony\', \'password\':\'123\'},
             {\'username\':\'oldboy\', \'password\':\'123\'}
             ]
i = 1
while True:
    user = input("请输入用户名:")
    passwd = input("请输入密码:")
    flag = False
    for item in user_list:
        if item[\'username\'] == user and item[\'password\'] == passwd:
            print("登录成功")
            flag = True
            break
    if flag:
        break
    else:
        print("用户名或密码有误")
    if i < 3:
        pass
    else:
        print("登录失败")
        break
    i += 1
View Code 

以上是关于s22期pythonDay1的主要内容,如果未能解决你的问题,请参考以下文章

零基础学PythonDay1 Python简介与环境安装

零基础学PythonDay1 Python简介与环境安装

《安富莱嵌入式周报》第279期:强劲的代码片段搜索工具,卡内基梅隆大学安全可靠C编码标准,Nordic发布双频WiFi6 nRF7002芯片

照亮\数据库\查询异常(42S22)SQLSTATE[42S22]

SQLSTATE [42S22]:找不到列:在 laravel livewire 项目中

SQLSTATE [42S22]:找不到列:1054 未知列 - Laravel