文章目录
基本语法
- 严格区分大小写
- 每一行都是一个语句,以换行结束
- 规范建议每一行语句都不要超过80个字符
- 一条语句可以分多行写,但是每行结束都要用\来结尾
print('H\
ell\
o')
# 输出结果是Hello
-
严格缩进,Python中没有用{}或者单词来代表语句块,是用缩进来代表的,建议使用4个空格来表示缩进
-
python中的注释用#
一、字面量和变量
字面量就是一个值,1,2,3,‘hello’
变量(variable)可以用来保存字面量,并且变量中的字面量是不定的
变量本身就是一个标识,但是会根据字面的不同而表示不同的意思
二、变量和标识符
Java中
int i = 10;
必须要声明,类型要确定或者类型推断,一个变量存的类型是一定的
python中使用变量,不需要声明,直接赋值即可
a = 10
所有变量一定要赋值后才可以使用,Java中会有默认赋值
命名规范(变量,类名,函数名)
- 标识符可以含有数字、字母、_,但是不能用数字开头
- 不能使用关键字和保留字,也不建议用自带的函数名
- 一般用下划线分割单词或者帕斯卡命名(驼峰法则)
三、数据类型
1.数值
- 整型:python中的整型没有大小限制,可以无限大
a = 123_456_789 # 数字过长的时候可以用下划线分割
不同进制的表示方式
a = 15 # 十进制
b = 0b1111 # 二进制
c = 0o17 # 八进制
d = 0x10 # 十六进制
print(a) # 15
print(b) # 15
print(c) # 15
print(d) # 16
- 浮点型:python所有的浮点型都是float类型,浮点型无法保证精确度
a = 0.1 + 0.2
print(a)
# 0.30000000000000004
- 布尔型True False(本质是1,0)
a = 0.1 + 0.2
print(a == 0.1 + 0.2)
# True
print(0.3 == 0.1 + 0.2) # 也可以证明浮点型无法保证精确度,因此浮点数计算用精确度达到一定范围来确定是否相等
# False
a = False + 1
print(a) # 1
print(a == True) # True
- 复数
2.字符串
字符串的本质是一段不可变的序列
s = 'Hello' # 用引号括起来,可以是单引号,双引号,三引号,必须配对使用
s = 'Hello'
s = '你好"hello"'
s = 'This is a \
Hello\
World'
print(s) # This is a HelloWorld
s = '''窗前明月光,疑是地上霜。
举头望明月,低头思故乡。''' # 三引号可以换行,排版格式会被保留下来
# 窗前明月光,疑是地上霜。
# 举头望明月,低头思故乡。
print(s)
转义字符
\ 做转义字符和Java一样
格式化字符
%s 表示任意字符占位
%d 表示整数占位
%f表示浮点数占位
s = 'Hello %s'%'zhangsan'
s2 = 'Hello %s 你有%d元钱'%('zhangsan',199)
s3 = 'Hello %s 你有%d元钱,还欠贷款%f元钱'%('zhangsan',199,999.99)
print(s)
print(s2)
print(s3)
# Hello zhangsan
# Hello zhangsan 你有199元钱
# Hello zhangsan 你有199元钱,还欠贷款999.990000元钱
占位可以表示长度
s4 = 'Hello %5.10s'%'Zh' #限定字符串在5-10个字符之间,少则补空格,多则截断
print(s4) # Hello Zh
s5 = 'Hello %5.10s'%'Zhangsanmohanmode'
print(s5) # Hello Zhangsanmo
s6 = '存款是%.2f'%12345.6789
print(s6) # 存款是12345.68,四舍五入了
用f和{}来配合格式化
name='张三'
rq=1
print(f'Hello {name},{rq}是星期一')
# Hello 张三,1是星期一
用+拼接字符串且只能是拼接字符串
Java中可以将别的类型自动转换成字符串,python不行
3.空值
None # 表示不存在
4.对象类型(后续详细讲解,此处略)
5.类型检查 type()
print(type(1)) # <class 'int'>
print(type(1.1)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type('abc')) # <class 'str'>
print(type(None)) # <class 'NoneType'>
print(type(print)) # <class 'builtin_function_or_method'>
6.类型转换
int() float() bool() str() 四个函数来转换类型
a = 123.45
b = int(a)
print(b,type(b)) # 123 <class 'int'>
字符串转换的时候一定要是合法数字字符
a = '123.5'
print(float(a)) # 123.5
bool()可以将任何类型转换为布尔值,所有代表非空的都会变成True
print(bool('True')) # True
print(bool('False')) # True
print(bool('false')) # True
print(bool(0)) # False
print(bool('')) # False
print(bool(None)) # False
print(bool('0')) # True
四、运算符
1.算术运算符
# + 加法,还可以拼接字符串
# -
# * 除了做乘法以外,还可以表示字符串重复次数
s = 'abc'
print(s*3) # abcabcabc
# %
# / 除法,所有的结果自动是浮点数
# // 整除,返回值是一个整数
# ** 幂运算
a = 10
print(a**2) # 100
print(a**0.5) # 3.1622776601683795
2.赋值运算符
+= -=
*= 除了数学的*=还可以表示字符串*=
/=
//=
%=
**=
s = 'abc'
s *= 3
print(s) # abcabcabc
3.关系运算符
> >= < <= == !=
is is not 比较两个对象是不是同一个对象,实质是比较对象的id
也可以用来比较字符串,实质比的是字符串的unicode的编码大小(同java)
print(True is 1) # False
print(1 == True) # True
print(id(1),id(True)) # is 的本质是比较id
4.逻辑运算符
and 与,or 或,not 非
如果运算中出现非bool值,相当Python会对其做一个bool转换
print(1 and 2) # 2
print(True and 2) # 2 相当于 True
print(1 and 0) # 0
5.三元运算符
相当于java中的 int i = 2>1?2:1;
a = 10
b = 50
max = a if a>b else b
print(max)
a = 10
b = 50
c = 80
max = a if a > b else b if b > c else c
print(max)
6.运算符的优先级(不用记,加括号即可)
** | 幂运算 |
---|---|
* / % // | 乘除取模整除 |
+ - | 加,减 |
> >= < <= | 比较运算符 |
== != | 等于 |
= %= /= *= … | 赋值运算符 |
not and or | 逻辑运算符 |
没有++或者--
a = 1<2<3 # 1<2 and 2<3
print(a) # True