目录
1.1·基本的输入和输出
1.1.1·使用print()输出
在Python中,使用内置的print()函数可以将结果输出到IDLE或者标准控制台上。
print()函数的基本语法格式如下:
print(需要输出的输出内容)
代码如下:
a = 100 # 变量 a,值是 100
b=5 # 变量 b,值是 5
print(10) # 输出数字 9
print(a) # 输出字母 a
print(b) # 输出字母 b
print(a*b) # 输出 a*b 的结果
print('go big or go home') # 输出 “go big or go home”(要么出众,要么出局)
在Python中,print()函数默认输出后会自动换行,如果想一次输出多个内容不换行,可以将要输出的内容使用英文半角的逗号分隔。代码如下:
print(a,b,'要么出众,要么出局') # 输出结果为100 5 要么出众,要么出局
多个print()函数的输出结果输出在同一行
在程序中如果有多个print()函数时,在执行的时候每个print()函数输出内容后会自动换行。
代码如下:
print('p')
print('y')
print('t')
print('h')
print('o')
print('n')
输出结果:
p
y
t
h
o
n
当程序有多个print()函数时,你想程序的下个print()函数输出同一行时,可以在输出的内容后面加上 end='' 参数。
print('python',end='\t') # 当内容输出后,以 \t 结束
end='x' 表示输出内容以 x 结束,不换行,下一个print()函数输出在同一行
代码如下:
print('p',end='\t') # 输出内容"p",结束语为\t(水平制表符,tab键)
print('y',end='\t')
print('t',end='\t')
print('h',end='\t')
print('o',end='\t')
print('n',end='\t')
输出结果:
p y t h o n
使用ASCII编码转换输出
在编程时,我们输入的的符号可以使用ASCII码的形式输入,ASCII码是美国信息交换标准码,这个码由英文大小写字母、数字和一些符号组成称为ASCII编码。
这个编码需要使用函数 chr() 进行转换输出。代码如下:
print('a') # 输出字符a
print(chr(97)) # 输出字符a
print('A') # 输出字符A
print(chr(65)) # 输出字符A
print('B') # 输出字符B
print(chr(66)) # 输出字符B
print('+') # 输出字符+
print(chr(43)) # 输出字符+
print(8) # 输出字符8
print(chr(56)) # 输出字符8
print('[') # 输出字符[
print(chr(91)) # 输出字符[
print(']') # 输出字符]
print(chr(93)) # 输出字符]
使用 ord() 函数将字符转换为整数。代码如下:
print(ord("A")) # 输出数字 65
print(ord("B")) # 输出数字 66
print(ord("C")) # 输出数字 67
print(ord("D")) # 输出数字 68
print(ord("E")) # 输出数字 69
ASCII 非打印字符 (字符编码: 0--31)
十进制 DEC | 八进制 OCT | 十六进制 HEX | 二进制 BIN | 符号 Symbol | HTML 实体编码 | 中文解释 Description |
---|---|---|---|---|---|---|
0 | 000 | 00 | 00000000 | NUL | � | 空字符 |
1 | 001 | 01 | 00000001 | SOH |  | 标题开始 |
2 | 002 | 02 | 00000010 | STX |  | 正文开始 |
3 | 003 | 03 | 00000011 | ETX |  | 正文结束 |
4 | 004 | 04 | 00000100 | EOT |  | 传输结束 |
5 | 005 | 05 | 00000101 | ENQ |  | 询问 |
6 | 006 | 06 | 00000110 | ACK |  | 收到通知 |
7 | 007 | 07 | 00000111 | BEL |  | 铃 |
8 | 010 | 08 | 00001000 | BS |  | 退格 |
9 | 011 | 09 | 00001001 | HT | 	 | 水平制表符 |
10 | 012 | 0A | 00001010 | LF | 
 | 换行键 |
11 | 013 | 0B | 00001011 | VT |  | 垂直制表符 |
12 | 014 | 0C | 00001100 | FF |  | 换页键 |
13 | 015 | 0D | 00001101 | CR | 
 | 回车键 |
14 | 016 | 0E | 00001110 | SO |  | 移出 |
15 | 017 | 0F | 00001111 | SI |  | 移入 |
16 | 020 | 10 | 00010000 | DLE |  | 数据链路转义 |
17 | 021 | 11 | 00010001 | DC1 |  | 设备控制 1 |
18 | 022 | 12 | 00010010 | DC2 |  | 设备控制 2 |
19 | 023 | 13 | 00010011 | DC3 |  | 设备控制 3 |
20 | 024 | 14 | 00010100 | DC4 |  | 设备控制 4 |
21 | 025 | 15 | 00010101 | NAK |  | 拒绝接收 |
22 | 026 | 16 | 00010110 | SYN |  | 同步空闲 |
23 | 027 | 17 | 00010111 | ETB |  | 传输块结束 |
24 | 030 | 18 | 00011000 | CAN |  | 取消 |
25 | 031 | 19 | 00011001 | EM |  | 介质中断 |
26 | 032 | 1A | 00011010 | SUB |  | 替换 |
27 | 033 | 1B | 00011011 | ESC |  | 换码符 |
28 | 034 | 1C | 00011100 | FS |  | 文件分隔符 |
29 | 035 | 1D | 00011101 | GS |  | 组分隔符 |
30 | 036 | 1E | 00011110 | RS |  | 记录分离符 |
31 | 037 | 1F | 00011111 | US |  | 单元分隔符 |
ASCII 打印字符 (字符编码: 32-127)
十进制 DEC | 八进制 OCT | 十六进制 HEX | 二进制 BIN | 符号 Symbol | HTML 实体编码 | 中文解释 Description |
---|---|---|---|---|---|---|
32 | 040 | 20 | 00100000 | (space) |   | 空格 |
33 | 041 | 21 | 00100001 | ! | ! | 感叹号 |
34 | 042 | 22 | 00100010 | " | " | 双引号 |
35 | 043 | 23 | 00100011 | # | # | 井号 |
36 | 044 | 24 | 00100100 | $ | $ | 美元符 |
37 | 045 | 25 | 00100101 | % | % | 百分号 |
38 | 046 | 26 | 00100110 | & | & | 与 |
39 | 047 | 27 | 00100111 | ' | ' | 单引号 |
40 | 050 | 28 | 00101000 | ( | ( | 左括号 |
41 | 051 | 29 | 00101001 | ) | ) | 右括号 |
42 | 052 | 2A | 00101010 | * | * | 星号 |
43 | 053 | 2B | 00101011 | + | + | 加号 |
44 | 054 | 2C | 00101100 | , | , | 逗号 |
45 | 055 | 2D | 00101101 | - | - | 连字号或减号 |
46 | 056 | 2E | 00101110 | . | . | 句点或小数点 |
47 | 057 | 2F | 00101111 | / | / | 斜杠 |
48 | 060 | 30 | 00110000 | 0 | 0 | 0 |
49 | 061 | 31 | 00110001 | 1 | 1 | 1 |
50 | 062 | 32 | 00110010 | 2 | 2 | 2 |
51 | 063 | 33 | 00110011 | 3 | 3 | 3 |
52 | 064 | 34 | 00110100 | 4 | 4 | 4 |
53 | 065 | 35 | 00110101 | 5 | 5 | 5 |
54 | 066 | 36 | 00110110 | 6 | 6 | 6 |
55 | 067 | 37 | 00110111 | 7 | 7 | 7 |
56 | 070 | 38 | 00111000 | 8 | 8 | 8 |
57 | 071 | 39 | 00111001 | 9 | 9 | 9 |
58 | 072 | 3A | 00111010 | : | : | 冒号 |
59 | 073 | 3B | 00111011 | ; | ; | 分号 |
60 | 074 | 3C | 00111100 | < | < | 小于 |
61 | 075 | 3D | 00111101 | = | = | 等号 |
62 | 076 | 3E | 00111110 | > | > | 大于 |
63 | 077 | 3F | 00111111 | ? | ? | 问号 |
64 | 100 | 40 | 01000000 | @ | @ | 电子邮件符号 |
65 | 101 | 41 | 01000001 | A | A | 大写字母 A |
66 | 102 | 42 | 01000010 | B | B | 大写字母 B |
67 | 103 | 43 | 01000011 | C | C | 大写字母 C |
68 | 104 | 44 | 01000100 | D | D | 大写字母 D |
69 | 105 | 45 | 01000101 | E | E | 大写字母 E |
70 | 106 | 46 | 01000110 | F | F | 大写字母 F |
71 | 107 | 47 | 01000111 | G | G | 大写字母 G |
72 | 110 | 48 | 01001000 | H | H | 大写字母 H |
73 | 111 | 49 | 01001001 | I | I | 大写字母 I |
74 | 112 | 4A | 01001010 | J | J | 大写字母 J |
75 | 113 | 4B | 01001011 | K | K | 大写字母 K |
76 | 114 | 4C | 01001100 | L | L | 大写字母 L |
77 | 115 | 4D | 01001101 | M | M | 大写字母 M |
78 | 116 | 4E | 01001110 | N | N | 大写字母 N |
79 | 117 | 4F | 01001111 | O | O | 大写字母 O |
80 | 120 | 50 | 01010000 | P | P | 大写字母 P |
81 | 121 | 51 | 01010001 | Q | Q | 大写字母 Q |
82 | 122 | 52 | 01010010 | R | R | 大写字母 R |
83 | 123 | 53 | 01010011 | S | S | 大写字母 S |
84 | 124 | 54 | 01010100 | T | T | 大写字母 T |
85 | 125 | 55 | 01010101 | U | U | 大写字母 U |
86 | 126 | 56 | 01010110 | V | V | 大写字母 V |
87 | 127 | 57 | 01010111 | W | W | 大写字母 W |
88 | 130 | 58 | 01011000 | X | X | 大写字母 X |
89 | 131 | 59 | 01011001 | Y | Y | 大写字母 Y |
90 | 132 | 5A | 01011010 | Z | Z | 大写字母 Z |
91 | 133 | 5B | 01011011 | [ | [ | 左中括号 |
92 | 134 | 5C | 01011100 | \ | \ | 反斜杠 |
93 | 135 | 5D | 01011101 | ] | ] | 右中括号 |
94 | 136 | 5E | 01011110 | ^ | ^ | 音调符号 |
95 | 137 | 5F | 01011111 | _ | _ | 下划线 |
96 | 140 | 60 | 01100000 | ` | ` | 重音符 |
97 | 141 | 61 | 01100001 | a | a | 小写字母 a |
98 | 142 | 62 | 01100010 | b | b | 小写字母 b |
99 | 143 | 63 | 01100011 | c | c | 小写字母 c |
100 | 144 | 64 | 01100100 | d | d | 小写字母 d |
101 | 145 | 65 | 01100101 | e | e | 小写字母 e |
102 | 146 | 66 | 01100110 | f | f | 小写字母 f |
103 | 147 | 67 | 01100111 | g | g | 小写字母 g |
104 | 150 | 68 | 01101000 | h | h | 小写字母 h |
105 | 151 | 69 | 01101001 | i | i | 小写字母 i |
106 | 152 | 6A | 01101010 | j | j | 小写字母 j |
107 | 153 | 6B | 01101011 | k | k | 小写字母 k |
108 | 154 | 6C | 01101100 | l | l | 小写字母 l |
109 | 155 | 6D | 01101101 | m | m | 小写字母 m |
110 | 156 | 6E | 01101110 | n | n | 小写字母 n |
111 | 157 | 6F | 01101111 | o | o | 小写字母 o |
112 | 160 | 70 | 01110000 | p | p | 小写字母 p |
113 | 161 | 71 | 01110001 | q | q | 小写字母 q |
114 | 162 | 72 | 01110010 | r | r | 小写字母 r |
115 | 163 | 73 | 01110011 | s | s | 小写字母 s |
116 | 164 | 74 | 01110100 | t | t | 小写字母 t |
117 | 165 | 75 | 01110101 | u | u | 小写字母 u |
118 | 166 | 76 | 01110110 | v | v | 小写字母 v |
119 | 167 | 77 | 01110111 | w | w | 小写字母 w |
120 | 170 | 78 | 01111000 | x | x | 小写字母 x |
121 | 171 | 79 | 01111001 | y | y | 小写字母 y |
122 | 172 | 7A | 01111010 | z | z | 小写字母 z |
123 | 173 | 7B | 01111011 | { | { | 左大括号 |
124 | 174 | 7C | 01111100 | | | | | 垂直线 |
125 | 175 | 7D | 01111101 | } | } | 右大括号 |
126 | 176 | 7E | 01111110 | ~ | ~ | 波浪号 |
127 | 177 | 7F | 01111111 | (del) |  | 删除 |
使用Unicode编码转换输出
其他版本转换编码 Unicode\UTF-8 等等,Python3.0以 Unicode 为内部字符编码,Unicode采用双子节16位来进行编码,可变65536个字符,用十六进制4位表示一个编码,打印汉字可以用U+编码的形式,如打印汉字“生化危机”和“中国”,代码如下:
print("\u751f\u5316\u5317\u673a") # 输出字符“生化危机”
print("\u4e2d\u56fd") # 输出字符“中国”
使用print()函数输出内容到文件
fp = open(r"C:\Users\sunshine\Desktop\demo.txt","a+") # 打开文件
print("要么出众,要么出局。",file=fp) # 输出到文件中
fp.close() # 关闭文件
'''
open 打开
r 为了使后面的转义符失效
C:\Users\sunshine\Desktop\ 打开文件的地址
demo.txt 文件名称和后缀名
a+ 以读写的模式打开文件,并将指针移动在文件内容的末尾,如果文件不存在则创建新的文件用于读写
'''
1.1.2 使用input()函数输入
var = input("提示文字")
var 为保存输入结果的变量,双引号内的内容用于提醒用户要输入的内容 。例如:
var = inout("请输入文字:") # 将输入的结果保存在变量var中
使用 int() 函数将输入的结果转换为整数型
var = int(input("请输入数值:")) # 将用户输入的数值类型转换为整数型保存在变量var中
使用 ord() 函数将输入的文字转换为整数
name = input("输入字符:") # 输入字母或数字
print(name,"的ASCII编码为",ord(name)) # 输出字符name对应的ASCII编码的值
运行结果:
输入字符:
>>> A
A 对应的ASCII编码为 65
示例:根据输入的年龄,计算年龄大小
import datetime # 调入时间模块
imyear = input("请输入您的出生年份:") # 输入出生年份,必须是4位数字的,如1982
nowyear= datetime.datetime.now().year #计算当前年份
age= nowyear- int(imyear) # 用于计算实际年龄
print("您的年龄为:"+str(age ) +"岁") # 输出年龄
# 根据计算的年龄判断所处的年龄阶段,判定标准是根据联合国组织给出的新年龄分段判定标准
if age<18: #如果年龄小于18岁
print("您现在为未成年人 ~@_@~") #输出为“您现在为未成年人 ~@_@~”
if age>=18 and age<66: #如果年龄大于18岁但小于66岁
print("您现在为青年 (-_-)") #输出为“您现在为青年人 (-_-)”
if age>=66 and age<80: #如果年龄大于65岁但小于80岁
print("您现在为中年人~@_@~") #输出为“您现在为中年人~@_@~”
if age>=80: #如果年龄大于或等于80岁
print("您现在为老年人 *-_-* ") #输出为“您现在为老年人*-_-* ”
运行结果:
请输入您的出生年份:
>>> 1996
您的年龄为25岁
您现在是青年人(-_-)
1.2 ·注释
1.2.1·单行注释
在Python中使用 “#”作为单行注释的符号。从“#”符号开始一直到换行为止,其后面的所有内容都作为注释内容被Python解释器忽略。
# 注释内容
单行注释可以放在要注释代码的前一行,也可以放在要注释代码的右侧。例如:
# 要求输入出生年份,必须是4位数字,如:2022
year = int(input("请输入您的出生年份:"))
year = int(input("请输入您的出生年份:")) # 要求输入出生年份,必须是4位数字,如:2022
1.2.2·多行注释
在Python中,并没有一个单独的多行注释标记,而是将包含在一对三引号("""···········""")或者('''·········''')之间的代码都称为多行注释。这样的代码将会被解释器忽略,由于这些代码可以分为多行编写所以也称为多行注释。例如:
'''
注释内容1
注释内容2
········
'''
"""
注释内容1
注释内容2
········
"""
多行注释其实也可以采用单行注释多行编写,例如:
# 注释内容1
# 注释内容2
# 注释内容3
# 注释内容4
# 注释内容5
1.2.3·中文编码声明注释
在Python中编写低吗的时候,如果用到的指定字符编码类型的中文编码,需要在文件开头加上中文声明注释,这样可以在程序中指定字符编码类型的中文编码,不至于出现代码错误。例如:
# _*_ coding: utf-8 _*_
# _*_ coding: unicode _*_
# coding = utf-8
# coding = unicode
# 在以上代码中 _*_ 并没有特殊作用,只是为了美观加上的
1.3·代码缩进
Python 不像其他程序设计语言(如 Java 或者C语言)采用大括号“{}”分隔代码块,而是采用代码缩进和冒号“:”区分代码之间的层次。
缩进可以使用空格键或者<Tab>键实现。使用空格键时,通常情况下采用4个空格作为一个缩进量而使用<Tab>键时,则采用一个<Tab>键作为一个缩进量。通常情况下建议采用空格进行缩进。
在Python中,对于定义、函数定义、流程控制语句,以及异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,二缩进结束表示一个代码块的结束。例如:
height=float(input("请输入您的身高:")) # 输入身高
weight=float(input("请输入您的体重:")) # 输入体重
bmi=weight/(height*height) # 计算BMI指数
# 判断身材是否合理
if bmi<18.5:
print("您的BMI指数为:"+str(bmi)) #输出BMI指数
print("体重过轻 ~@_@~")
if bmi>=18.5 and bmi<24.9:
print("您的BMI指数为:"+str(bmi)) #输出BMI指数
print("正常范围,注意保持 (-_-)")
if bmi>=24.9 and bmi<29.9:
print("您的BMI指数为:"+str(bmi)) #输出BMI指数
print("体重过重 ~@_@~")
if bmi>=29.9:
print("您的BMI指数为:"+str(bmi)) #输出BMI指数
print("肥胖 ^@_@^")
1.4编码规范
图中右侧的代码段看上去比左侧的代码段更加规整,阅读起来也会比较轻松、畅快,这是一种最基本的代码编写规范。遵循一定的代码编写规则和命名规范可以使代码更加规范化,对代码的解与维护都会起到至关重要的作用。
编写规则
Python中采用 PEP8作为编码规范,其中 PEP是Python Enhancement Proposal(Python 增强建议书)的缩写,而“PEP”中的“8”表示版本号PEP8是Pyhon代码的样式指南。下面给出P编规范中的一些应该严格遵守的条目。
每个import语句只导入一个模块,尽量避免一次导入多个模块。
import os # 推荐写法
import sys iaport os, sys # 不推荐写法
不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。
height = float(input("请输入您的身高:");
weisht = float(input("请输入您的体重:");
建议每行不超过80个字符,如果超过,建议使用小括号‘()’”将多行内容隐式的连接起来,而不推荐使用反斜杠“\”进行连接。例如如果遗憾改写不下建议使用小括号“()”分行编写。代码如下:
print("清晨,朝霞满天,我就要踏上归程。"
"从江上往高处看,可以看见白帝城彩云缭绕,如在云间,景色绚丽!"
"千里之遥的江陵,一天之间就已经到达。"
"两岸猿猴的啼声不断,回荡不绝。猿猴的啼声还回荡在耳边时,"
"轻快的小船已驶过连绵不绝的万重山峦。")
例如以下通过反斜杠“\”连接的做法是不推荐的
print("清晨,朝霞满天,我就要踏上归程。\
从江上往高处看,可以看见白帝城彩云缭绕,如在云间,景色绚丽!\
千里之遥的江陵,一天之间就已经到达。两岸猿猴的啼声不断,回荡不绝。\
猿猴的啼声还回荡在耳边时,轻快的小船已驶过连绵不绝的万重山峦。")
以下两种可以推荐使用“\”
·导入模块的语句过长
·注释里的URL
使用必要的空行可以增加代码的可读性。一般在项级定义 (如函数或者类的定义)之间空两行,而方法定义之间空一行。另外,在用于分隔某些功能的位置也可以空一行。
通常情况下,运算符两侧、函数参数之间、逗号“,”两侧建议使用空格进行分隔。
应该避免在循环中使用“+”和“+=”运算符累加字符串。这是因为学符串是不可变的,这样做会创建不必要的临时对象。推荐将每个子字符串加入列表,然后在循环结束后使用join0方法连接列表。
适当使用异常处理结构提高程序容错性,但不能过多依赖异常处理结构,适当的显式判断还是必要的。
1.5·命名规范
命名规范在编写代码中起到很重要的作用,虽然不遵循命名规范,程序也可以运行,但是使用命名规范
可以更加直观地了解代码所代表的含义。
模块名尽量短小,并且全部使用小写字母,可以使用下划线分隔多个字母。
例如, game _ main、 gamc _ register 、 bmiexponent 都是推荐使用的模块名称。
包名尽量短小,并且全部使用小写字母,不推荐使用下划线。
例如, com .mingrisoft 、 com . mr 、com. book 都是推荐使用的包名称,而 com_mingrisoft 是不推荐的。
类名来用单词首字母大写形式(即 Pascal 风格)例如定义一个借书类,可以命名BorrowBook。
模块内部的类采用下划线“_”+ Pascal 风格的类名组成。例如,在 BorrowBook 类中的内部类,
可以使用_BorrowBook 命名。
函数、类的属性和方法的命名规则同模块类似,也是全部使用小写字母,多个字母间用下划线“_”分隔。
常量命名时采用全部大写字母,可以使用下划线。
使用单下划线“_”开头的模块变量或者函数是受保护的,在使用 from xXx import *语句从模块
中导入时这些变量或者函数不能被导人。
使用双下划线“_ _”开头的实例变量或方法是类私有的。