执行
- Windows
方式一
D:Pythonpython.exe D:Python17DAY01Helloworld.py
方式二
D:Pythonpython.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 = name
print(user) // 打印大师兄
name = '二师兄'
print(name) // 打印二师兄
print(user) // 打印大师兄
输入输出
- 输入
name = input('请输入用户名:')
print(name)
import getpass
password = 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时执行循环体,否则退出循环体。
代码语言:javascript复制
continue:
跳出本次循环,继续下一次循环break:
跳出整个循环
i = 0
while i < 11:
print(i)
i = 1
- for
重复执行语句。
代码语言:javascript复制
continue:
跳出本次循环,继续下一次循环break:
跳出整个循环
a = ['a','b','c','d']
for item in a:
print(item)
其它
小试牛刀
打印1,2,3,4,5,6,8,9,10
代码语言:javascript复制i = 1
while i < 11:
if i == 7:
i = 1
continue
print(i)
i = 1
计算1-100之和
代码语言:javascript复制i = 1
sum = 0
while i < 101:
sum = i
i = 1
print(sum)
打印1-100奇数
代码语言:javascript复制i = 1
while i < 101:
if i % 2 == 1:
print(i)
i = 1
计算1-100奇数之和
代码语言:javascript复制i = 1
sum = 0
while i < 101:
if i % 2 == 1:
sum = i
i = 1
print(sum)
打印1-100偶数
代码语言:javascript复制i = 1
while i < 101:
if i % 2 == 0:
print(i)
i = 1
计算1-100偶数之和
代码语言:javascript复制i = 1
sum = 0
while i < 101:
if i % 2 == 0:
sum = i
i = 1
print(sum)
计算1-2 3-4 5......99结果
代码语言:javascript复制i = 1
sum = 0
while i < 100:
if i % 2 == 1:
sum = i
else:
sum -= i
i = 1
print(sum)
用户登录(三次机会重试)
代码语言:javascript复制count = 0
while count < 3:
import getpass
name = input('请输入用户名:')
password = getpass.getpass('请输入密码:')
if name == 'linbin' and password == 'axbc1kof':
print('登录成功!')
break
else:
print('登录失败!')
count = 1