python复习(1)

119 阅读9分钟

许久不用python,有点生疏了,这里找了一份python基础重新过一遍

输出即为复习

———————————————————————————————————————————————

Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:(也就是说所有这些keyword都不能拿来做变量名或者标识符哦)

关键字:

In:

import keyword
keyword.kwlist

Out:

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

注释:

Python中单行注释以 # 开头,实例如下:

In

# 第一个注释
print ("Hello, Python!") # 第二个注释

Out

Hello, Python!

多行注释可以用多个#号,也可以用'''"""

In

# 第一个注释
# 第二个注释
 
'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""
print ("Hello, Python!")

Out

Hello, Python!

行与缩进:

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。实例如下:

In

if True:
    print ("True")
else:
    print ("False")

Out

True

In

if True:
    print ("Answer")
    print ("True")
else:
    print ("Answer")
  print ("False")    # 缩进不一致,会导致运行错误

Out

File "<tokenize>", line 6
    print ("False")    # 缩进不一致,会导致运行错误
    ^
IndentationError: unindent does not match any outer indentation level

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠``来实现多行语句,例如:

In

total = item_one + \
        item_two + \
        item_three

在 [], {}, 或 () 中的多行语句,不需要使用反斜杠``,例如:

In

total = ['item_one', 'item_two', 'item_three',
        'item_four', 'item_five']

输入与输出

输入

input()函数用于输入数据,无论用户输入什么内容,该函数都返回字符串类型。其格式如下:
input(prompt=None, /)。其中prompt表示提示信息,默认为空,如果不空,则显示提示信息。然后等待用户输入,输入完毕后按回车键,并将用户输入作为一个字符串返回,并自动忽略换行符。

In

x=input("请输入x值")
x
type(x) #查看x的类型

Out

str

当用户输入10,按回车键之后,input()函数将字符串'10'赋予变量x,结果就是字符串'10'。内置函数type()返回对象的类型。

输出

Python中最简单的输出方式就是使用print()函数。其格式如下:
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
其中各参数的解释如下:

  • value: 表示需要输出的对象,一次可以输出一个或者多个对象(其中...表示任意多个对象),当输出多个对象时,对象之间要用逗号,分隔;
  • sep:表示输出时对象之间的间隔符,默认用一个空格分隔;
  • end:表示输出以何字符结尾,默认值是换行符;
  • file:表示输出位置,可将输出到文件,file指定的对象要有“写”的方法,默认值是sys.stdout(标准输出);
  • flush:将缓存里面的内容是否强制刷新输出,默认值是False。

In

print('hello','world','!')#一次输出三个对象。中间默认用空格隔开
print('hello','world','!',sep='*')#一次输出三个对象,中间用*隔开。

Out

hello world !
hello*world*!

使用帮助

Python提供了dirhelp函数供用户查看模块、函数等的相关说明。
以查看math模块的相关说明为例,在Python命令窗口中输入dir(math)即可查看math模块的可用属性和函数

In

import math
dir(math)

Out

['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']

help函数可以查看模块、函数等的详细说明信息。例如在import math后,输入命令help(math),将列出math模块中所有的常量和函数详细说明。如果输入help(math.sqrt)将只列出math.sqrt函数的详细信息。

In

import math
help(math.sqrt)

Out

Help on built-in function sqrt in module math:

sqrt(...)
    sqrt(x)
    
    Return the square root of x.

变量

变量赋值

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

等号=用来给变量赋值。

等号=运算符左边是一个变量名,等号=运算符右边是存储在变量中的值。例如:

In

counter = 100    # 整型变量
miles = 1000.0   # 浮点型变量
name = "你好"     # 字符串

print (counter)
print (miles)
print (name)

Out

100
1000.0
你好

多变量赋值

Python允许你同时为多个变量赋值。例如:

In

a = b = c = 1
print(a,b,c)

Out

1 1 1

以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。

您也可以为多个对象指定多个变量。例如:

In

a, b, c = 1, 2, "你好" #将两个整型对象 12 的分配给变量 ab,字符串对象 "你好" 分配给变量 c。
print(a,b,c)

Out

1 2 你好

变量类型

在程序设计中,变量是一种存储数据的载体。
计算机能处理的数据有很多种类型,除了数值之外还可以处理文本、图形、音频、视频等各种各样的数据,那么不同的数据就需要定义不同的存储类型。
Python中的数据类型很多,我们先介绍几种常用的数据类型。

  • 整型int:Python中可以处理任意大小的整数
  • 浮点型float:浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,浮点数除了数学写法(如123.456)之外还支持科学计数法(如1.23456e2)。
  • 字符串型str:字符串是以单引号或双引号括起来的任意文本,比如'hello'和"hello"。
  • 布尔型:布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来(例如3 < 5会产生布尔值True,而2 == 1会产生布尔值False)。
  • 复数型:形如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的i换成了j。实际上,这个类型并不常用,大家了解一下就可以了。

变量的使用

下面通过几个例子来说明变量的类型和变量使用。

In

"""
使用变量保存数据并进行加减乘除运算
"""
a = 321
b = 12
print(a + b)    # 333
print(a - b)    # 309
print(a * b)    # 3852
print(a / b)    # 26.75

Out

333
309
3852
26.75

在Python中可以使用type函数对变量的类型进行检查。程序设计中函数的概念跟数学上函数的概念是一致的,数学上的函数相信大家并不陌生,它包括了函数名、自变量和因变量。如果暂时不理解这个概念也不要紧,我们会在后续的章节中专门讲解函数的定义和使用。

In

"""
使用type()检查变量的类型
"""
a = 100
b = 12.345
c = 1 + 5j
d = 'hello, world'
e = True
print(type(a))    # 打印出变量a的类型
print(type(b))   
print(type(c))   
print(type(d))   
print(type(e))   

Out

<class 'int'>
<class 'float'>
<class 'complex'>
<class 'str'>
<class 'bool'>

可以使用Python中内置的函数对变量类型进行转换。
int( ):将一个数值或字符串转换成整数,可以指定进制。
float( ):将一个字符串转换成浮点数。
str( ):将指定的对象转换成字符串形式,可以指定编码。
chr( ):将整数转换成该编码对应的字符串(一个字符)。
ord( ):将字符串(一个字符)转换成对应的编码(整数)。
下面的代码通过键盘输入两个整数来实现对两个整数的算术运算。

In

"""
使用input()函数获取键盘输入(字符串)
使用int()函数将输入的字符串转换成整数
使用print()函数输出带占位符的字符串

"""
a = int(input('a= '))
b = int(input('b = '))
print('%d + %d = %d' % (a, b, a + b))
print('%d - %d = %d' % (a, b, a - b))
print('%d * %d = %d' % (a, b, a * b))
print('%d / %d = %f' % (a, b, a / b))
print('%d // %d = %d' % (a, b, a // b))
print('%d %% %d = %d' % (a, b, a % b))

Out

3 + 6 = 9
3 - 6 = -3
3 * 6 = 18
3 / 6 = 0.500000
3 // 6 = 0
3 % 6 = 3
3 ** 6 = 729

%为python的格式化输出

image.png

运算符

Python支持多种运算符,下面大致按照优先级从高到低的顺序列出了所有的运算符。
运算符的优先级指的是多个运算符同时出现时,先做什么运算然后再做什么运算。除了我们之前已经用过的赋值运算符和算术运算符,我们稍后会陆续讲到其他运算符的使用。

image.png

image.png

image.png

赋值运算符

赋值运算符应该是最为常见的运算符,它的作用是将右边的值赋给左边的变量。下面的例子演示了赋值运算符和复合赋值运算符的使用。

In

"""
赋值运算符和复合赋值运算符
"""
a = 10
b = 3
a += b        # 相当于:a = a + b
a *= a + 2    # 相当于:a = a * (a + 2)
print(a)      # 算一下这里会输出什么

Out

195

比较运算符

比较运算符有的地方也称为关系运算符,包括==、!=、<、>、<=、>=,我相信没有什么好解释的,大家一看就能懂。

  • 唯一需要提醒的是比较相等用的是==,请注意这个地方是两个等号,因为=是赋值运算符,我们在上面刚刚讲到过,==才是比较相等的比较运算符。比较运算符会产生布尔值,要么是True要么是False。

逻辑运算符

逻辑运算符有三个,分别是and、or和not。
(1)and字面意思是“而且”,所以and运算符会连接两个布尔值,如果两个布尔值都是True,那么运算的结果就是True;左右两边的布尔值有一个是False,最终的运算结果就是False。

  • 相信大家已经想到了,如果and左边的布尔值是False,不管右边的布尔值是什么,最终的结果都是False,所以在做运算的时候右边的值会被跳过(短路处理),这也就意味着在and运算符左边为False的情况下,右边的表达式根本不会执行。

(2)or字面意思是“或者”,所以or运算符也会连接两个布尔值,如果两个布尔值有任意一个是True,那么最终的结果就是True。当然,or运算符也是有短路功能的,在它左边的布尔值为True的情况下,右边的表达式根本不会执行。

(3)not运算符的后面会跟上一个布尔值,它的作用是得到与该布尔值相反的值,也就是说,后面的布尔值如果是True运算结果就是False,而后面的布尔值如果是False则运算结果就是True。

In

"""
比较运算符和逻辑运算符的使用
"""
flag0 = 1 == 1
flag1 = 3 > 2
flag2 = 2 < 1
flag3 = flag1 and flag2
flag4 = flag1 or flag2
flag5 = not (1 != 2)
print('flag0 =', flag0)    # flag0 = True
print('flag1 =', flag1)    # flag1 = True
print('flag2 =', flag2)    # flag2 = False
print('flag3 =', flag3)    # flag3 = False
print('flag4 =', flag4)    # flag4 = True
print('flag5 =', flag5)    # flag5 = False

Out

flag0 = True
flag1 = True
flag2 = False
flag3 = False
flag4 = True
flag5 = False

tips:比较运算符的优先级高于赋值运算符,所以flag0 = 1 == 1先做1 == 1产生布尔值True,再将这个值赋值给变量flag0。print函数可以输出多个值,多个值之间可以用,进行分隔,输出的内容之间默认以空格分开。


练习

练习1

(1)打印出:hello world !*
tips:print函数默认输出是换行的,如果要实现不换行需要在变量末尾设置 end参数。

(2)输出01234,中间无间隙

练习2:输入华氏温度输出为转换的摄氏温度。

提示:华氏温度到摄氏温度的转换公式为:C=(F−32)÷1.8。

练习3:输入圆的半径计算计算周长和面积。

In[1]

print('hello','world','!',end='*')
print('01234')

In[2]

F = float(input("请输入华氏温度:"))
C = (F-32)/1.8
print(C)

In[3]

r = float(input("请输入圆的半径"))
C = 2*3.14*r
S = 3.14*r*r

print("该圆的周长为:",C)
print("该圆的面积为:",S)