输入和输出
区别于c语言和java,Python的输入和输出十分的简单。
注释
单行注释
# 注释内容
多行注释
'''
使用 3 个单引号分别作为注释的开头和结尾
可以一次性注释多行内容
这里面的内容全部是注释内容
'''
输出
基本语法规则:
print('hello, world')
# hello world
逗号间隔
print('The quick brown fox', 'jumps over', 'the lazy dog')
# The quick brown fox jumps over the lazy dog
打印整数和计算结果
print(300)
#300
print(100 + 200)
#300
与字符串拼接
print('100 + 200 =', 100 + 200)
# 100 + 200 = 300
函数用法
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
- objects — 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
- sep — 用来间隔多个对象,默认值是一个空格。
- end — 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
file — 要写入的文件对象。flush — 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。后面两个暂时不需要知道。
举个例子:
print("1","2","3",sep=",")
print("上面的语句已经换行。")
print("-------")
print("1","2","3",sep=",",end="")
print("上面的语句咩有换行。")
对比一下看一下差别就知道了
输入
基本语法
name = input()
这里输入之后的值就已经赋值给了name变量。
可以打印一下变量进行查看
print(name)
函数用法
name = input("请输入名字:")
print(name)
数据类型
整数
整数的类型在计算机中一般都表示为Int
。
number = 10
print(number)
# 10
二进制,八进制,十六进制
在整数前面加上0b
,0o
,0x
分别表示这个数是二进制
、八进制
、十六进制
。
进制概念的参考:
进制的概念与转换(二进制、十进制、八进制、十六进制)琴酒3的博客-CSDN博客进制的概念及换算
num1 = 0b10001 # 17
num2 = 0o17 # 15
num3 = 0xFF # 255
进制转换
num = int('23',16)
print(num) # 35
这里是使用int函数进行进制转换的,第一个参数'23'
是转换进制前的数,第二个参数16
是这个数是十六进制数,所以最后转为十进制就是2*16+3=35。
上面用int是将其他进制的数转化为十进制,同样也可让十进制转换为其他进制:
num = 26
print('%x'%num) #1a
print(hex(num)) #0x1a
print(format(num,'x')) #1a
这里推荐最后一种方法,转换比较通用:
- format(number,’b’):二进制
- format(number,’o’):八进制
- format(number,’x’):十六进制
可以发现format函数前面是需要转化的数,后面就是转换进制的类型,这个类型和上面的0b
,0o
,0x
是对应起来的。
浮点数
基本浮点数
浮点数基本有两个类型float
和double
,这两个的区别就只是精度的差别,都可以使用。
number = 3.14
print(number) # 3.14
浮点数的指数表示
这里的e2
表示的就是*102
:
number = 3.14e2
print(number)
# 314.0
注意:浮点数运算之后仍然是浮点数,所以会保留小数点。 由于计算机限制,浮点数会有精度损失,但是基本对初学不影响,知道就好。
数据运算符号
运算符 | 描述 | 实例 |
---|---|---|
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2 |
% | 取模 - 返回除法的余数 | b % a 输出结果 0 |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 - 返回商的整数部分(向下取整) | >>> 9//2 = 4 >>> -9//2 = -5 |
比较运算符
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
字符串
基本字符串
在赋值的使用,用单引号''
或者双引号""
引用的都是字符串:
str = "Hello World"
转义字符串
一般来讲'
和"
不能直接在字符串中表示,所以需要转义字符串\
来表示
例如:
str ='I\'m \"OK\"!'
print(str)
# I'm "OK"!
当然如果想直接用''
也可以额,字符串必须用""
进行包裹:
str = "I'm OK"
print(str)
# I'm OK
如果想直接使用""
,可以用三引号包裹:
str = ''' I'm "OK" '''
print(str)
# I'm "OK"
如果只是想输出反斜杠\
,有两种方法,一种是用\
转义\
,比较麻烦,这里直接讲第二种:
strs = r'C:\temp\data.dat'
print(strs) # C:\temp\data.dat
只需要在字符串前面添加一个字母r
即可(大小写都可以),这样字符串就会原样输出。
字符串运算符
下表实例变量 a 值为字符串 “Hello”,b 变量值为 “Python”:
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | >>>a + b ‘HelloPython’ |
* | 重复输出字符串 | >>>a * 2 ‘HelloHello’ |
[] | 通过索引获取字符串中字符 | >>>a[1] ‘e’ |
[ : ] | 截取字符串中的一部分 | >>>a[1:4] ‘ell’ |
更多字符串方法参照:
Python 字符串 | 菜鸟教程
Python字符串常用方法详解
布尔类型
布尔类型的数据只有两个:True
和False
,一般用于判断式子的真假:如果是真,返回True
,否则就是返回False
。
flag = 1 > 2
print(flag) # False
数据之间的转化
向下取整
使用int()
进行强制类型转化即可,会自动把小数部分舍去。
num = 1.65
print(int(num)) # 1
向上取整
这里使用的Math.ceil
函数,这里只需要记住用法即可
import math # 这里需要先导入函数库
num = 1.05
print(math.ceil(num)) # 2
四舍五入
num1 = 1.65
print(round(num1)) # 2
num2 = 1.01
print(round(num2)) # 1
整数转为浮点数
num = 2
print(float(num)) # 2.0
字符串转化为数字
num1 = '1.65'
print(int(num1)) # 1
num2 = '1.01'
print(float(num2)) # 1.01
数字和布尔类型的关系
一句话:0
等价于False
,其余等价于True
。
字符转化为ASCII码
ASCII码表:
ASCII码一览表,ASCII码对照表
ASCII 编码中第 0~31 个字符(开头的 32 个字符)以及第 127 个字符(最后一个字符)都是不可见的(无法显示),但是它们都具有一些特殊功能,所以称为控制字符( Control Character)或者功能码(Function Code)。
strs = 'A'
print(ord(strs)) # 65
还可以反向转化:
num = 65
print(char(num)) # A
字符串转换公式
先看实例:
strs = input() # 2*3
print(eval(strs)) # 6
这里的strs
是自己输入的,默认是字符串类型,如果输入一个公式,eval可以直接转化为公式进行计算。
条件判断和循环
条件判断
普通写法
条件判断的语句是if
语句,其他条件使用elif
(全称为:else if),else
表示除开if
和elif
中的条件剩下所有的情况。
当判断语句为真的时候才会执行相关内容。
age = 3
# 年龄大于等于18的时候输出adult
if age >= 18:
print('adult')
# 年龄小于18 并且年龄大于等于6的时候 输出teenager
elif age >= 6:
print('teenager')
# 不属于上面两种情况的时候输出kid
else:
print('kid')
#如果需要一个条件语句里面写多个语句,只需要保持缩进即可
注意缩进符号,这里不需要大括号。 if后面直接跟随条件即可 主要判断语句后面要加
:
化简写法
如果只有if和else,并且当需要执行的语句比较简单的时候,可以对语句进行化简,举个例子:
# 控制台中输入成绩
grade = int(input())
if grade >= 60:
print("及格")
else:
print("不及格")
上面的可以化简为:
grade = int(input())
print("及格" if grade >= 60 else "不及格")
这里的意思就是,当if后面的条件语句为真的时候,就会输出if前面的"及格"
,如果不成立,那就输出最后的"不及格"
。
条件判断运算符
一般条件判断中会涉及到数字大小的判断,这里需要用到条件判断运算符:
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 true. |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 | (a < b) 返回 true。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 | (a <= b) 返回 true。 |
注意:如果想要判断两个数字相等,应该使用的
==
而不是=
!
循环
range函数
range(start, stop, step)
参数说明:
start
: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop
: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是[0, 1, 2, 3, 4]没有5step
:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
range
其实本质上是一个函数,用于生成一个数组。
举例说明:
>>>range(10) # 从 0 开始到 9
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(1, 11) # 从 1 开始到 10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> range(0, 30, 5) # 步长为 5
[0, 5, 10, 15, 20, 25]
>>> range(0, 10, 3) # 步长为 3
[0, 3, 6, 9]
>>> range(0, -10, -1) # 负数
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
>>> range(0)
[]
>>> range(1, 0)
[]
for in循环
names = ['Michael', 'Bob', 'Tracy']
for name in names:
print(name)
# Michael
# Bob
# Tracy
所以for x in ...
循环就是把每个元素代入变量x,然后执行缩进块的语句。
sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
sum = sum + x
print(sum)
**结合range函数**
sum = 0
for x in range(101):
sum = sum + x
print(sum)
# 5050
这里就相当于x是从0循环到101-1,也就是100,每次循环,都让sum = sum + x,也就是sum每次都加上一个x,所以最后sum的值就是0-100这101个数的和。
while循环
先看例子:
sum = 0
n = 99
while n > 0:
sum = sum + n
n = n - 2
print(sum)
# 2500
while
后面跟的是一个条件判断语句,类似于if
语句。
当条件判断语句为真的时候,就会执行一遍while中的所有代码。
所有代码执行一遍之后,会再次进行条件判断,如果还是为真,继续执行,反之则中止循环。
上述代码中n初始值为99,第一次条件判断为真,所以执行下面两行代码:
sum = sum + n
n = n - 2
执行完毕之后,n = n-2也就是97,此时会再次进行条件判断,条件语句仍然成真,所以继续执行:
sum = sum + n
n = n - 2
最后不难发现知道n=-1的时候,循环中止,此时的sum
是1-99的所有奇数的和,也就是2500。
break
n = 1
while n <= 100:
if n > 10: # 当n = 11时,条件满足,执行break语句
break # break语句会结束当前所有循环
print(n)
n = n + 1
print('END')
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10
# END
continue
n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶数,执行continue语句
continue # continue语句会直接继续下一次循环,后续的print()语句不会执行
print(n)
# 1
# 3
# 5
# 7
# 9
注意continue
只是跳出当前这一次的循环,break
则是跳出所有的循环。