PY-day1笔记

第1章 PY的种类

  • 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

2.1 windos

1、下载安装包

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

2、安装

    默认安装路径:C:\python27

3、配置环境变量

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

linux:无需安装,原装Python环境

第3章 PY入门

3.1 python内部执行的过程

 

 

3.2 解释器

windows:

                C:\Python35\python.exe D:\1.txt

                C:\Python35\python.exe

 Linux:

                C:\Python35\python.exe D:\1.txt

                C:\Python35\python.exe

                头部#!/usr/bin/python

                chmod 755 1.py

                ./1.py

3.3 编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

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

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

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

注:此处说的的是最少2个字节,可能更多

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

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

报错:ascii码无法表示中文

#!/usr/bin/env python

print "hello,world"

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

print "hello,world"

3.4 注释

当行注视:# 被注释内容  快捷键ctrl+?

多行注释:""" 被注释内容 """

3.5 潜规则

py的后缀用.py

代码的头部如下: 

#!/bin/usr/python

#-*-coding:utf-8-*-

3.6 Pycharm

3.6.1 新建project目录

 

 

3.6.2 新建目录

 

 

3.6.3 优化编码:默认为保存为UTF-8

ile--default setting--输入encoding--Global Encoding--UTF-8

 

 

3.6.4 优化模板

 

 

 

3.6.5 优化字体-mouse滑轮调整大小

file--setting--mouse--General-Change font 打勾

 

 

3.7 变量

- 字母

- 数字(不能开头)

- 下划线

- 变量名要有意义,建议的变量命名user_id

- 不能使用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']

-变量的赋值

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

name1 = "wupeiqi"
name2 = "alex"

3.8 输入输出

#!/bin/usr/python

#-*-coding:utf-8-*-

#输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:

import getpass

name=input("Pleaseenteryourname:")

pwd=getpass.getpass('Please enter your password:')

print(name)

print(age)

3.9 条件语句

3.9.1 if_else

if 条件:

       成功走这里

 else:

       失败走这里

#!/bin/usr/python

#-*-coding:utf-8-*-

import getpass

name = input("Please enter your name:")

pwd = getpass.getpass('Please enter your password:')

if name =='alex' and pwd== 'sb':

    print ('welcome!')

else:

    print('get out')

3.9.2 if_elif_else

if 条件:

  ...

 elif 条件:

  ...

else:

  …

#!/bin/usr/python

#-*-coding:utf-8-*-

 username = input ('>>>')

 if username == 'yangxu':

     print ("Welcome1")

 elif username == "jinying":

     print ("Welcome2")

 elif username == "zhangsan":

     print ("Get out!")

 else:

     print ("88")

3.9.3 if嵌套

#-*-coding:utf-8-*-

user_type = input ('请输入用户类型:')

if user_type == '管理员':

    username=input ('输入用户名:')

    if username=='alex':

        print ('sb')

else:

    print ('getout')

3.10 while循环语句

break:跳出所有循环.

continue:退出当前循环,开始下一次循环.

3.11 练习题

3.11.1 用户登录

 

3.11.2 输出1 2 3 4 5 6 8 9 10

 

或:

 

 

3.11.3 计算1-100的和

 

3.11.4 求1-100的所有奇数

 

3.11.5 求1-100的所有偶数

 

 

3.11.6 求1-2+3-4+5...99的运算结果

3.11.7 用户登录(三次机会重试)

 

3.11.8 猜数字

 

 

第4章 Python运算符

4.1 算数运算

 

4.2 比较运算

 

4.3 赋值运算

 

4.4 逻辑运算

 

4.5 成员运算

 

 

第5章 Python基本数据类型

5.1 数字

int(整型)

在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647

在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~922337203685477580

- 创建

a = 123

a = int(123)

- 转换

age = "18"

new_age = int(age)

5.2 布尔值

真或假  1或0

 - 创建

v = bool (1)

a = True

b = False

- 转换

- 数字转换,只有0是False,其他True

- 字符串,  只有""是False,其他True

5.3 字符串

- 创建

     a = "alex"

     a = str('alex')

 - 转换

      age = 19

      new_age = str(age)

 - 字符串的拼接

      name = 'alex'

      gender = '女'

      new_str = name + gender

      print(new_str)

  - 字符串格式化   

       占位符s%

 方式1:

     name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!'

     new_str = name %('男',19,)

     print(new_str)

方式2:

     name = '我叫李杰,性别:%s,我今年%s岁,我在说谎!' %('男',19,)

     print(name)

  - 判断子序列是否在其中

 content = "Alex 前几天去泰国玩姑娘,一不小心染上了病,他的内心活动是,真该多来几个"

 if "前几天去" in content:

           print('包含敏感字符')

      else:

            print(content)

5.3.1  字符串常用功能

 -移除空白

    val = " alex "

    print(val)

    new_val = val.strip() # 左右

    new_val = val.lstrip()# 左边

    new_val = val.rstrip() # 右边

    print(new_val)

  - 分割

user_info = "alex|sb123|9"

v = user_info.split('|')

v = user_info.split('|',1) #只找到左边的第一个管道符进行分割

 v = user_info.rsplit(' ',1)  #只找到右边的第一个管道符进行分割

 - 长度(字符为单位)

val = "alex你好"

v = len(val)

print(v)

第6章 索引

val = "李杰sb"

v = val[0]

print(v)

  索引实例:将每一个字符都print

val = input('>>>')      

i = 0         

while i < len(val):

print(val[i]) #通过索引去取字符

i += 1

第7章 切片(不包含最后一个字符)

name = '我叫李杰,性别我今年岁,我在说谎!'

print(name[0])

print(name[0:2])

print(name[5:9:2]) #步长为2

print(name[5:])

print(name[5:-2])

print(name[-2:])

第8章 列表

-      创建

a = ['alex','狗','eric',123]  或:

a = list(['alex','狗','eric',123])

-      in判断

if 'al' in a:

   pass

if 'al' in a[0]:

   pass

-      索引

val = a[0]

-      长度

val = len(a)

-      切片

a = ['alex','狗','eric',123]

v = a[0::2]

print(v)

-      追加

a = ['alex','狗','eric',123]

a.append('xxoo')

print(a)

-      插入

a = ['alex','狗','eric',123]

a.insert(0,'牛')

print(a)

-      删除

a = ['alex','eric','狗','eric',123]

# a.remove('eric')

del a[0]

print(a)

-      更新

a = ['alex','eric','狗','eric',123]

a[1] = '阿斯顿发送到'

print(a)

-      For循环

a = ['alex','eric','狗','eric',123]

for item in a:

     print(item)

     # break

     continue

第9章 元祖

9.1   创建元祖

ages = (11, 22, 33, 44, 55)

ages = tuple((11, 22, 33, 44, 55))

9.1.1   基本操作

-      索引

-      切片

-      循环

-      长度

-      包含

第10章 字典

10.1 常用操作

-      创建

v = {"name": "mr.wu", 'age': 18}

v = dict({"name": "mr.wu", 'age': 18})

-      索引获取值

n = v['name']

 print(n)

 

 

-      增加,无,增加;有,修改

v['age'] = 19

 print(v)

-      删除

del v['name']

 print(v)

-      循环

for item in v.keys():

         print(item)

for item in v.values():

         print(item)

 for key,val in v.items():

         print(key,val)

10.2 字典和列表的相互嵌套

user_dict = {

'k1': 'v1',

'k2': {'kk1':'vv1','kk2':'vv2'},

'k3': 123,

'k4': ['alex','eric',['a','b','c'],'李杰',{'k11':'vv1'}],

}

user_dict['k4'][2].append('123')

user_dict['k4'][4]['n'] = '过啥龙'

10.3 应用

user_list = [

    {'name':'alex','pwd':'123123','times':1},

    {'name':'eric','pwd':'123123','times':1},

{'name':'tony','pwd':'123123','times':1},

]

     user = input('用户名:')

     pwd = input('密码:')

     for item in user_list:

       if user == item['name'] and pwd == item['pwd']:

          print('登录成功')

          break

posted on 2017-05-03 20:45  大旭旭杨  阅读(160)  评论(0编辑  收藏  举报