输入与输出
输出:
print(‘内容’)
print(“内容1”,“内容2”,...)
print(数字) #不需要单引号、双引号
print(数字1 运算 数字2) #直接进行运算
print(“内容1”,数字运算) #随机组合
输入:input()
输入Input,输出Output,输入输出统称Input/Output,或简写IO。
input()和print()是在命令行下面最基本的输入和输出,也可通过其他更高级的图形界面完成输入和输出。
Python基础
主要从数据类型、字符串和编码、使用list和tuple、条件判断、循环和使用dict和set等方面进行:
数据类型和变量
- 整数、浮点数、字符串
整数:写法同数学上(运算永远精确,包括除法)
浮点数:即小数,小浮点数写法同数学上,大浮点数采用科学计数法 (运算会有四舍五入的误差)
字符串:用单引号’'和双引号""来显示,包含以上引号借用转义字符\
例子:
>>> print("I'm OK") #正常输出
I'm OK
>>> print('I\'m OK') #转义字符
I'm OK
>>> print('I\'m \"OK\"') #转义字符
I'm "OK"
>>> print('I\'m\tlearning\npython\!') #转义字符包含\n,\t,\*转义
I'm learning
python\!
>>> print('''python) #多行输出
is
so
easy''')
python)
is
so
easy
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r’‘表示’'内部的字符串默认不转义
>>> print(r'I\'m \"OK\"') #r 后面默认不转义!!!
I\'m \"OK\"
- 布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:
>>> False
False
>>> 3 > 5
False
布尔值可以用and、or和not运算,等同于与、或、非运算
>>> True and False
False
>>> True or False
True
>>> not False
True
- 空值
None不等于0,0有含义,None是特殊的空值。 - 变量
变量名必须是大小写英文、数字和下划线_的组合,且不能用数字开头
同一变量可以反复赋值! - 常量
在Python中,通常用全部大写的变量名表示常量
补充:整数做 “//” 除法只取结果的整数部分
练习
我的:
n=123
print("n=",n)
f=456.789
print("f=",f)
print("s1 = \'Hello,world\'")
print(r"s2 = 'Hello,\'Adam\''")
print("s3 = r'Hello, \"Bart\"'")
print("s4 = ""r""\'''Hello,\nLisa!\'''")
字符串和编码
计算机默认处理数字,文字 需转换成 数字 才能处理
Unicode将所有语言通道一套编码中,但相同内容是英文无中文情况下,Unicode比ASCII多一倍存储空间。
UTF-8=可变长编码
英文字母=1字节
汉字=3字节
生僻字符=4-6字节
字符 ASCII Unicode UTF-8
A 01000001 00000000 01000001 01000001
中 x 01001110 00101101 11100100 10111000 10101101
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:
- 字符串
ord(‘字符’)—>字符的整数表示
chr(编码的数字)---->对应的字符
>>> ord('中')
20013
>>> chr(25991)
'文'
- 编码规则:
>>> 'ABC'.encode('ascii') #纯英文用ASCII编码为bytes
b'ABC'
>>> '中文'.encode('utf-8') #中文用UTF-8编码
b'\xe4\xb8\xad\xe6\x96\x87'
>>> '中文'.encode('ascii') #中文不可用ASCII编码
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
>>> b'ABC'.decode('ascii') #对bytes进行ASCII解码
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') #对中文bytes进行utf-8解码
'中文
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore') #ignore可忽略解码过程中出现的错误字节
'中'
>>> len('中文') #统计str的字符数,只占两个字符
2
>>> len('中文'.encode('utf-8')) #统计bytes的字节数,一个中文字符占3个字节
6
- 编写代码注意事项:
Python源码中包含中文的时候,保存源代码时需要用utf-8编码,通常在.py文件的前两行声明一下:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
使用notepad++编写脚本时,编码部分选择UTF-8 without BOM 编码
综上,即声明+编码方式都确定为UTF-8,中文字符在运行python代码后正常显示!!
练习
我的:
# -*- coding: utf-8 -*-
s1 = 72
s2 = 85
r = (s2-s1)/s1*100
print('improved percent of grades is %.2f %%' % r)
>> improved percent of grades is 18.06 %