输入和输出

区别于c语言和java,Python的输入和输出十分的简单。

注释

单行注释

  1. # 注释内容

多行注释

  1. '''
  2. 使用 3 个单引号分别作为注释的开头和结尾
  3. 可以一次性注释多行内容
  4. 这里面的内容全部是注释内容
  5. '''

输出

注释部分就是输出的样式。

基本语法规则:

  1. print('hello, world')
  2. # hello world

逗号间隔

  1. print('The quick brown fox', 'jumps over', 'the lazy dog')
  2. # The quick brown fox jumps over the lazy dog

打印整数和计算结果

  1. print(300)
  2. #300
  3. print(100 + 200)
  4. #300

与字符串拼接

  1. print('100 + 200 =', 100 + 200)
  2. # 100 + 200 = 300

函数用法

  1. print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • objects — 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep — 用来间隔多个对象,默认值是一个空格
  • end — 用来设定以什么结尾默认值是换行符 \n,我们可以换成其他字符串。
  • file — 要写入的文件对象。
  • flush — 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新。

    后面两个暂时不需要知道。

举个例子:

  1. print("1","2","3",sep=",")
  2. print("上面的语句已经换行。")
  3. print("-------")
  4. print("1","2","3",sep=",",end="")
  5. print("上面的语句咩有换行。")

对比一下看一下差别就知道了
image.png

输入

基本语法

  1. name = input()

这里输入之后的值就已经赋值给了name变量。
可以打印一下变量进行查看

  1. print(name)

函数用法

  1. name = input("请输入名字:")
  2. print(name)

image.png


数据类型

整数

整数的类型在计算机中一般都表示为Int

  1. number = 10
  2. print(number)
  3. # 10

二进制,八进制,十六进制

在整数前面加上0b,0o,0x分别表示这个数是二进制八进制十六进制
进制概念的参考:
进制的概念与转换(二进制、十进制、八进制、十六进制)琴酒3的博客-CSDN博客进制的概念及换算

  1. num1 = 0b10001 # 17
  2. num2 = 0o17 # 15
  3. num3 = 0xFF # 255

进制转换

  1. num = int('23',16)
  2. print(num) # 35

这里是使用int函数进行进制转换的,第一个参数'23'转换进制前的数,第二个参数16是这个数是十六进制数,所以最后转为十进制就是2*16+3=35
上面用int是将其他进制的数转化为十进制,同样也可让十进制转换为其他进制:

  1. num = 26
  2. print('%x'%num) #1a
  3. print(hex(num)) #0x1a
  4. print(format(num,'x')) #1a

这里推荐最后一种方法,转换比较通用:

  • format(number,’b’):二进制
  • format(number,’o’):八进制
  • format(number,’x’):十六进制

可以发现format函数前面是需要转化的数,后面就是转换进制的类型,这个类型和上面的0b,0o,0x是对应起来的。

浮点数

基本浮点数

浮点数基本有两个类型floatdouble,这两个的区别就只是精度的差别,都可以使用。

  1. number = 3.14
  2. print(number) # 3.14

浮点数的指数表示

这里的e2表示的就是*102:

  1. number = 3.14e2
  2. print(number)
  3. # 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。

字符串

基本字符串

在赋值的使用,用单引号''或者双引号""引用的都是字符串:

  1. str = "Hello World"

转义字符串

一般来讲'"不能直接在字符串中表示,所以需要转义字符串\来表示
例如:

  1. str ='I\'m \"OK\"!'
  2. print(str)
  3. # I'm "OK"!

当然如果想直接用''也可以额,字符串必须用""进行包裹:

  1. str = "I'm OK"
  2. print(str)
  3. # I'm OK

如果想直接使用"",可以用三引号包裹:

  1. str = ''' I'm "OK" '''
  2. print(str)
  3. # I'm "OK"

如果只是想输出反斜杠\,有两种方法,一种是用\转义\,比较麻烦,这里直接讲第二种:

  1. strs = r'C:\temp\data.dat'
  2. 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字符串常用方法详解

布尔类型

布尔类型的数据只有两个:TrueFalse,一般用于判断式子的真假:如果是真,返回True,否则就是返回False

  1. flag = 1 > 2
  2. print(flag) # False

数据之间的转化

向下取整

使用int()进行强制类型转化即可,会自动把小数部分舍去。

  1. num = 1.65
  2. print(int(num)) # 1

向上取整

这里使用的Math.ceil函数,这里只需要记住用法即可

  1. import math # 这里需要先导入函数库
  2. num = 1.05
  3. print(math.ceil(num)) # 2

四舍五入

  1. num1 = 1.65
  2. print(round(num1)) # 2
  3. num2 = 1.01
  4. print(round(num2)) # 1

整数转为浮点数

  1. num = 2
  2. print(float(num)) # 2.0

字符串转化为数字

  1. num1 = '1.65'
  2. print(int(num1)) # 1
  3. num2 = '1.01'
  4. print(float(num2)) # 1.01

数字和布尔类型的关系

一句话:0等价于False,其余等价于True

字符转化为ASCII码

ASCII码表:
ASCII码一览表,ASCII码对照表
ASCII 编码中第 0~31 个字符(开头的 32 个字符)以及第 127 个字符(最后一个字符)都是不可见的(无法显示),但是它们都具有一些特殊功能,所以称为控制字符( Control Character)或者功能码(Function Code)。

  1. strs = 'A'
  2. print(ord(strs)) # 65

还可以反向转化:

  1. num = 65
  2. print(char(num)) # A

字符串转换公式

先看实例:

  1. strs = input() # 2*3
  2. print(eval(strs)) # 6

这里的strs是自己输入的,默认是字符串类型,如果输入一个公式,eval可以直接转化为公式进行计算。


条件判断和循环

条件判断

普通写法

条件判断的语句是if语句,其他条件使用elif(全称为:else if),else表示除开ifelif中的条件剩下所有的情况。
当判断语句为的时候才会执行相关内容。

  1. age = 3
  2. # 年龄大于等于18的时候输出adult
  3. if age >= 18:
  4. print('adult')
  5. # 年龄小于18 并且年龄大于等于6的时候 输出teenager
  6. elif age >= 6:
  7. print('teenager')
  8. # 不属于上面两种情况的时候输出kid
  9. else:
  10. print('kid')
  11. #如果需要一个条件语句里面写多个语句,只需要保持缩进即可

注意缩进符号,这里不需要大括号。 if后面直接跟随条件即可 主要判断语句后面要加:

化简写法

如果只有if和else,并且当需要执行的语句比较简单的时候,可以对语句进行化简,举个例子:

  1. # 控制台中输入成绩
  2. grade = int(input())
  3. if grade >= 60:
  4. print("及格")
  5. else:
  6. print("不及格")

上面的可以化简为:

  1. grade = int(input())
  2. 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函数

  1. range(start, stop, step)

参数说明:

  • start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
  • stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是[0, 1, 2, 3, 4]没有5
  • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)

range其实本质上是一个函数,用于生成一个数组
举例说明:

  1. >>>range(10) # 从 0 开始到 9
  2. [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
  3. >>> range(1, 11) # 从 1 开始到 10
  4. [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
  5. >>> range(0, 30, 5) # 步长为 5
  6. [0, 5, 10, 15, 20, 25]
  7. >>> range(0, 10, 3) # 步长为 3
  8. [0, 3, 6, 9]
  9. >>> range(0, -10, -1) # 负数
  10. [0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
  11. >>> range(0)
  12. []
  13. >>> range(1, 0)
  14. []

for in循环

  1. names = ['Michael', 'Bob', 'Tracy']
  2. for name in names:
  3. print(name)
  4. # Michael
  5. # Bob
  6. # Tracy

所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。

  1. sum = 0
  2. for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
  3. sum = sum + x
  4. print(sum)
  1. **结合range函数**
  1. sum = 0
  2. for x in range(101):
  3. sum = sum + x
  4. print(sum)
  5. # 5050

这里就相当于x是从0循环到101-1,也就是100,每次循环,都让sum = sum + x,也就是sum每次都加上一个x,所以最后sum的值就是0-100这101个数的和。

image.png

while循环

先看例子:

  1. sum = 0
  2. n = 99
  3. while n > 0:
  4. sum = sum + n
  5. n = n - 2
  6. print(sum)
  7. # 2500

while后面跟的是一个条件判断语句,类似于if语句。
当条件判断语句为的时候,就会执行一遍while中的所有代码。
所有代码执行一遍之后,会再次进行条件判断,如果还是为真,继续执行,反之则中止循环
上述代码中n初始值为99,第一次条件判断为真,所以执行下面两行代码:

  1. sum = sum + n
  2. n = n - 2

执行完毕之后,n = n-2也就是97,此时会再次进行条件判断,条件语句仍然成真,所以继续执行

  1. sum = sum + n
  2. n = n - 2

最后不难发现知道n=-1的时候,循环中止,此时的sum是1-99的所有奇数的和,也就是2500。

break

  1. n = 1
  2. while n <= 100:
  3. if n > 10: # 当n = 11时,条件满足,执行break语句
  4. break # break语句会结束当前所有循环
  5. print(n)
  6. n = n + 1
  7. print('END')
  8. # 1
  9. # 2
  10. # 3
  11. # 4
  12. # 5
  13. # 6
  14. # 7
  15. # 8
  16. # 9
  17. # 10
  18. # END

流程图如下:
image.png

continue

  1. n = 0
  2. while n < 10:
  3. n = n + 1
  4. if n % 2 == 0: # 如果n是偶数,执行continue语句
  5. continue # continue语句会直接继续下一次循环,后续的print()语句不会执行
  6. print(n)
  7. # 1
  8. # 3
  9. # 5
  10. # 7
  11. # 9

image.png

注意continue只是跳出当前这一次的循环,break则是跳出所有的循环。