执行
Windows
方式一D:\Python\python.exe D:\Python17\DAY01\Helloworld.py方式二D:\Python\python.exe
Linux
方式一[root@linux-node1 ~]# /usr/bin/python Helloworld.py方式二[root@linux-node1 ~]# python方式三[root@linux-node1 ~]# vim Helloworld.py#!/usr/bin/python // 增加头部信息# -*- coding:utf8 -*- // 解释器编码print('Hello Python!')[root@linux-node1 ~]# chmod +x Helloworld.py // 增加可执行权限[root@linux-node1 ~]# ./Helloworld.py
编码
字符编码
计算机从本质上来说只认识二进制中的0和1,可以说任何数据在计算机中实际的物理表现形式也就是0和1,所有的信息最终都表示为一个二进制的字符串,每一个二进制位(bit)有0和1两种状态。
ASCII
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)编码规则是由美国定制,一共规定了128(2**8)个字符的编码,例如空格SPACE
是32(二进制00100000),大写的字母A
是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的一位统一规定为0。
GB2312、GBK
虽然计算机是美国人发明的,但是全世界的人都在使用计算机。现在出现了另一个问题:如何让中文被计算机理解?这下麻烦了,中文不像拉丁语系是由固定的字母排列组成的。ASCII 码显然没办法解决这个问题,为了解决这个问题中国国家标准总局1980年发布《信息交换用汉字编码字符集》提出了GB2312编码,用于解决汉字处理的问题。GB2312的出现,基本满足了汉字的计算机处理需要,但对于人名、古汉语等方面出现的罕用字,GB2312不能处理,导致后来出现了GBK编码。
Unicode
随着计算机的普及,显然ASCII码无法将世界上的各种文字和符号全部表示,所以诞生了Unicode编码。
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由16位来表示(2个字节)。
UTF-8
由于Unicode收录了更多的字符,可想而知它的解析效率相比ASCII码的速度要大大降低,原因是Unicode通过增加一个高字节对ISO Latin-1字符集进行扩展,当这些高字节位为0时,低字节就是ISO Latin-1字符。对可以用ASCII表示的字符使用Unicode并不高效,因为Unicode比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了UTF-8编码。UTF-8可以根据不同的符号自动选择编码的长短,例如英文字母可以只用1个字节就够了。
编码小结
为了处理英文字符,出现了ASCII编码。
为了处理中文字符,出现了GB2312编码。
为了处理各国字符,出现了Unicode编码。
为了提高Unicode存储和传输性能,出现了UTF-8编码。
注释
单行注释
#
常被用作单行注释符号,在代码中使用#
时它右边的任何数据都会被忽略,当做是注释。
# 如下是单行注释# print('Hello Python!')
多行注释
多行注释是用三引号""" """
包含的。
# 如下是多行注释"""print('Hello Java!')print('Hello PHP!')"""
引号
单引号
a = '谁说我的眼里只有你,让我把你忘记!'print(a)// 单引号字符串
双引号
a = "谁说我的眼里只有你,让我把你忘记!"print(a)// 双引号字符串
三引号
a = '''谁说我的眼里只有你,让我把你忘记!'''print(a)// 三单引号字符串,支持换行符a = """谁说我的眼里只有你,让我把你忘记!"""print(a)// 三双引号字符串,支持换行符
变量
定义
a = '谁说我的眼里只有你,让我把你忘记!'print(a)// 变量名为:a,变量a的值为:'谁说我的眼里只有你,让我把你忘记!'
命名规则
字母,数字,下划线组成
不能以数字开头
不能使用关键字
变量名见名知义
赋值
name = '林斌'user = name// 变量name,user在内存中指向同一段地址name = '林斌'user = '林斌'// 变量name,user在内存中指向同一段地址,Python的内存优化机制name = '大师兄'print(name) // 打印大师兄user = nameprint(user) // 打印大师兄name = '二师兄'print(name) // 打印二师兄print(user) // 打印大师兄
输入输出
输入
name = input('请输入用户名:')print(name)import getpasspassword = getpass.getpass('请输入你密码:')print(password)
输出
a = 'Hello Python!'print(a)
条件语句
单分支结构
if 1 == 1: print('条件正确')if 1 == 1: print('条件正确')else: print('条件错误')
多分支结构
name = input('请输入用户名:')if name == 'linbin': print('超级管理员')elif name == 'LinBin': print('管理员')elif name == 'LB': print('普通用户')else: print('匿名用户')
嵌套结构
name = input('请输入用户名:')if name == 'linbin': password = input('请输入密码:') if password == 'axbc1kof': print('登录成功!') else: print('登录失败!')else: print('你是谁啊?')
循环语句
while
在给定的判断条件为True时执行循环体,否则退出循环体。
continue:
跳出本次循环,继续下一次循环break:
跳出整个循环
i = 0while i < 11: print(i) i += 1
for
重复执行语句。
continue:
跳出本次循环,继续下一次循环break:
跳出整个循环
a = ['a','b','c','d']for item in a: print(item)
其它
小试牛刀
打印1,2,3,4,5,6,8,9,10
i = 1while i < 11: if i == 7: i += 1 continue print(i) i += 1
计算1-100之和
i = 1sum = 0while i < 101: sum += i i += 1print(sum)
打印1-100奇数
i = 1while i < 101: if i % 2 == 1: print(i) i += 1
计算1-100奇数之和
i = 1sum = 0while i < 101: if i % 2 == 1: sum += i i += 1print(sum)
打印1-100偶数
i = 1while i < 101: if i % 2 == 0: print(i) i += 1
计算1-100偶数之和
i = 1sum = 0while i < 101: if i % 2 == 0: sum += i i += 1print(sum)
计算1-2+3-4+5......99结果
i = 1sum = 0while i < 100: if i % 2 == 1: sum += i else: sum -= i i += 1print(sum)
用户登录(三次机会重试)
count = 0while count < 3: import getpass name = input('请输入用户名:') password = getpass.getpass('请输入密码:') if name == 'linbin' and password == 'axbc1kof': print('登录成功!') break else: print('登录失败!') count += 1