变量定义赋值
区别于java,C#等后端代码,python是弱类型无需声明类型,可直接定义:
name = “tom"
age=12
打印变量类型type
age=10
type(a)
变量缓存管理,id()打印内存地址查看
Python 解释器启动时从内存空间中开辟出一小部分,用来存储高频使用的数据,这样可以大大减少高频使用的数据创建时申请内存和销毁时撤销内存的开销。
数据类型 | 是否可以重用 | 生效范围 |
范围在 [-5, 256] 之间的小整数 | 如果之前在程序中创建过,就直接存入缓存,后续不再创建。 | 全局 |
bool 类型 | ||
字符串类型数据 | ||
大于 256 的整数 | 只要在本代码块内创建过,就直接缓存,后续不再创建。 | 本代码块 |
大于 0 的浮点型小数 | ||
小于 0 的浮点型小数 | 不进行缓存,每次都需要额外创建。 | |
小于 -5 的整数 |
id() 内置函数,该函数的功能是获取变量(对象)所在的内存地址
i1=3
i2=3
id(i1)
id(i2)
打印结果是两个变量是相同的内存地址
获取用户输入的字符串input()
a = input("Enter a number: ")
print(a)
类型转换 int float str
存在不同的类型转换报错时,需要处理报错
age="11.2"
print(10+age) ##报错TypeError: must be str, not float.字符串和浮点类型变量不能直接相连
改成:print(10+float(age))
函 数 | 作 用 |
int(x) | 将 x 转换成整数类型 |
float(x) | 将 x 转换成浮点数类型 |
complex(real,[,imag]) | 创建一个复数 |
str(x) | 将 x 转换为字符串 |
repr(x) | 将 x 转换为表达式字符串 |
eval(str) | 计算在字符串中的有效 Python 表达式,并返回一个对象 |
chr(x) | 将整数 x 转换为一个字符 |
ord(x) | 将一个字符 x 转换为它对应的整数值 |
hex(x) | 将一个整数 x 转换为一个十六进制字符串 |
oct(x) | 将一个整数 x 转换为一个八进制的字符串 |
运算符 + - * / //
运算符 | 说明 | 实例 | 结果 |
+ |
| 12.45 + 15 | 27.45 |
- |
f = -83.5 f_neg = -f 结果:83.5 | 4.56 - 0.26 | 4.3 |
* |
str1 = "hello " print(str1 * 4) 结果:hello hello hello hello | 5 * 3.6 | 18.0 |
/ | 除法(和数学中的规则一样) | 7 / 2 | 3.5 |
// | 整除(只保留商的整数部分) | 7 // 2 | 3 |
% | 取余,即返回除法的余数 | 7 % 2 | 1 |
** | 幂运算/次方运算,即返回 x 的 y 次方 | 2 ** 4 | 16,即 24 |
比较运算符 > < ==
比较运算符 | 说明 |
> | 大于,如果 |
< | 小于,如果 |
== | 等于,如果 |
>= | 大于等于(等价于数学中的 ≥),如果 |
<= | 小于等于(等价于数学中的 ≤),如果 |
!= | 不等于(等价于数学中的 ≠),如果 |
is | 判断两个变量所引用的对象是否相同,如果相同则返回 True,否则返回 False。 |
is not | 判断两个变量所引用的对象是否不相同,如果不相同则返回 True,否则返回 False。 |
print("89是否大于100:", 89 > 100)
print("24*5是否大于等于76:", 24*5 >= 76)
print("86.5是否等于86.5:", 86.5 == 86.5)
print("34是否等于34.0:", 34 == 34.0)
print("False是否小于True:", False < True)
print("True是否等于True:", True < True)
结果:
89是否大于100: False
24*5是否大于等于76: True
86.5是否等于86.5: True
34是否等于34.0: True
False是否小于True: True
True是否等于True: False
逻辑运算符 and or not
逻辑运算符 | 含义 | 基本格式 | 说明 |
and | 逻辑与运算,等价于数学中的“且” | a and b | 当 a 和 b 两个表达式都为真时,a and b 的结果才为真,否则为假。 |
or | 逻辑或运算,等价于数学中的“或” | a or b | 当 a 和 b 两个表达式都为假时,a or b 的结果才是假,否则为真。 |
not | 逻辑非运算,等价于数学中的“非” | not a | 如果 a 为真,那么 not a 的结果为假;如果 a 为假,那么 not a 的结果为真。相当于对 a 取反 |
age = int(input("请输入年龄:"))
height = int(input("请输入身高:"))
if age>=18 and age<=30 and height >=170 and height <= 185 :
print("恭喜,你符合报考飞行员的条件")
else:
print("抱歉,你不符合报考飞行员的条件")
注意:
Python 逻辑运算符可以用来操作任何类型的表达式,不管表达式是不是 bool 类型;同时,逻辑运算的结果也不一定是 bool 类型,它也可以是任意类型。请看下面的例子:
-
print(100 and 200)
-
print(45 and 0)
-
print("" or "http://c.biancheng.net/python/")
-
print(18.5 or "http://c.biancheng.net/python/")
结果:
200
0
http://c.biancheng.net/python/
18.5
三目运算符 exp1 if contion else exp2
语法:exp1 if contion else exp2
如果 condition 成立(结果为真),就执行 exp1,并把 exp1 的结果作为整个表达式的结果;如果 condition 不成立(结果为假),就执行 exp2,并把 exp2 的结果作为整个表达式的结果。
max = a if a>b else b ##比较a,b较大值
嵌套时需要注意 if 和 else 的配对:a if a>b else c if c>d else d 应该理解为:a if a>b else ( c if c>d else d )
print函数
语法:print (value,...,sep='',end='\n',file=sys.stdout,flush=False)
同时输出多个参数值
age=10
name=tom
print("age:",age,"name:",name)
分隔符,可通过 sep 参数进行设置
print(age,name,sep='|') ##sep="|" 也可以
#print() 函数输出之后不会换行
print(40,end="")
print(30,end="")
参数指定 print() 函数的输出目标(覆盖文件内容)
f = open("demo.txt","w")#打开文件以便写入
print('沧海月明珠有泪',file=f)
print('蓝田日暖玉生烟',file=f)
f.close()
####print() 函数的 flush 参数用于控制输出缓存,该参数一般保持为 False 即可,这样可以获得较好的性能。
输出占位符 %s……
age=8
print("你是几岁%d%s%o"%(age,age,age)) ##占位需要符合python语法,%是分割符号。以下是一些python占位符
转换说明符 | 解释 |
%d、%i | 转换为带符号的十进制整数 |
%o | 转换为带符号的八进制整数 |
%x、%X | 转换为带符号的十六进制整数 |
%e | 转化为科学计数法表示的浮点数(e 小写) |
%E | 转化为科学计数法表示的浮点数(E 大写) |
%f、%F | 转化为十进制浮点数 |
%g | 智能选择使用 %f 或 %e 格式 |
%G | 智能选择使用 %F 或 %E 格式 |
%c | 格式化字符及其 ASCII 码 |
%r | 使用 repr() 函数将表达式转换为字符串 |
%s | 使用 str() 函数将表达式转换为字符串 |
输出转义字符 \n \r \t
转义字符 | 说明 |
\n | 换行符,将光标位置移到下一行开头。 |
\r | 回车符,将光标位置移到本行开头。 |
\t | 水平制表符,也即 Tab 键,一般相当于四个空格。 |
\a | 蜂鸣器响铃。注意不是喇叭发声,现在的计算机很多都不带蜂鸣器了,所以响铃不一定有效。 |
\b | 退格(Backspace),将光标位置移到前一列。 |
\\ | 反斜线 |
\' | 单引号 |
\" | 双引号 |
\ | 在字符串行尾的续行符,即一行未完,转到下一行继续写。 |
#使用\t排版 str1 = '网站\t\t域名\t\t\t年龄\t\t价值' str2 = 'C语言中文网\tc.biancheng.net\t\t8\t\t500W' str3 = '百度\t\twww.baidu.com\t\t20\t\t500000W' print(str1) print(str2) print(str3) print("--------------------") # \n在输出时换行,\在书写字符串时换行 info = "Python教程:http://c.biancheng.net/python/\n\ C++教程:http://c.biancheng.net/cplus/\n\ Linux教程:http://c.biancheng.net/linux_tutorial/" print(info)