Python_Mooc_Stu_23_11_12

发布时间 2023-11-12 23:56:42作者: SouthDream

目录

一、输入与输出

  (一)输入

    1.标准输入

       (1)输入字符串

       (2)输入数值(整数、浮点数)

     2.多变量输入

      (1)eval()函数

      (2)input().split()方法

  (二)输出

    1.标准输出

    2.格式化输出

      (1)f-string方式

      (2)格式说明符

      (3)format()内置函数

      (4)字符串的format()方法

二、条件运算

三、循环结构 

  (一)while 循环

    1. while循环的逻辑图

    2. while _ else 结构

  (二)for循环(计数循环)

    1.for循环简介

    2.range对象在for循环中的应用

  (三)循环控制语句

 

 

 

 

 

 

一、输入与输出

(一)输入

1.标准输入:

函数:input([提示字符串])

作用:以字符串形式从键盘读入信息

>>>name = input('please input your name:')
please input your name:

 (1)输入字符串

直接调用input()函数接受,接受到的就是字符串;

>>>name = input('please input your name:')
please input your name:jack
>>>print(f'the type of variable is {type(name)}') 
the type of variable is <class 'str'>

 (2)输入数值(整数、浮点数)

使用input()进行输入,输入完成后进行强制类型转换;

>>>age = int(input('please input the age:'))
25
>>>print(f'the type of age is {type(age)}')
the type of age is <class 'int'>

>>>size = float(input('please input the size:'))
34
>>>print(f'the type of size is {type(size)}')
the type of size is <class 'float'>

 2.多变量输入

(1)eval()函数

注:eval()函数的作用是将字符串当做语句执行,因此在键盘输入的数据应当是不含有空格的、一个完整的字符串;

>>>a , b , c = eval(input())
1,2,3
>>>print(f'a={a} b={b} c={c}')
a=1 b=2 c=3

(2)input().split()方法

input().split() 是一个Python中的函数,用于从标准输入中读取一行文本,并使用一个分隔符将其分割成多个元素,返回一个包含这些元素的列表。

在上面的代码中,我们使用 input().split(',') 从标准输入中读取一行文本,并使用逗号作为分隔符将其分割成三个元素。然后,我们将这些元素分别赋值给变量 nameage 和 city,并打印它们的值。

需要注意的是,split() 方法默认使用空格作为分隔符,因此如果想要使用其他分隔符,需要显式指定它。

>>> name, age, city = input().split('')  
Please enter your name, age, and city: John,25,New York  
>>> print(name)  
John  
>>> print(age)  
25  
>>> print(city)  
New York

(二)输出

1.标准输出

函数:print()

格式:print(out1,out2,out3...outN , [sep = ] , [end = ])

解释:sep为各个输出项之间的分隔符,默认为空格;end为输出的结尾,默认为换行

>>>print( 10 , 20 , sep = '+' , end = '=' )
10+20=

2.格式化输出

(1)f-string方式

描述:在调用print()函数进行输出时,使用“print(f'this is string , and variable is {variable}')”形式;即输出的全部为字符串,变量使用大括号嵌入字符串中;

注释:若需要进行浮点数位数控制,形式如下:{variable:5.2f}

>>>radius = float(input())
2
>>>print(f"{PI*radius*radius:.4f}")
12.5600

(2)格式说明符

在Python中,格式化输出时,用运算符%分隔格式字符串与输出项,一般格式为:

格式字符串%(输出项1,输出项2...输出项n)

其中,格式字符串由普通字符和格式说明符组成。普通字符原样输出,格式说明符决定所对应输出项的输出格式。

格式说明符以百分号%开头,后接格式标志符。

print("%+3d,%8.2f"%(25,123.567))
+25,  123.57

(3)format()内置函数

format()内置函数可以将一个输出项单独进行格式化,一般格式为:

format(输出项[格式字符串])

其中,格式字符串是可选项。当省略格式字符串时,该函数等价于函数“str(输出项)"的功能。format()内置函数把输出项按格式字符串中的格式说明符进行格式化。

其中 x 为十六进制,c 为字符,f 为浮点数。

>>> print(format(15,'x'),format(65,'c'),format(3.145,'f'))
F A 3.145000

(4)字符串的format()方法

在Python中,字符串都有一个format()方法,这个方法会把格式字符串当作一个模版,通过传入的参数对输出项进行格式化。字符串format()方法的调用格式为:

格式字符串.format(输出项1,输出项2....输出项n)

其中,格式字符串可以包括普通字符和格式说明符。普通字符原样输出,格式说明符决定所对应输出项的转换格式。

格式说明符使用大括号扩起来,一般形式如下

{[序号或键][:格式说明符]}

其中,可选的序号对应于要格式化的输出项的位置,从0开始。可选的键对应于要格式化的输出项的名字或字典的键值。格式说明符同format()内置函数,要用冒号(:)开头。

>>>"{0:.2f} , {1}".format(6.592,125)
6.59 , 125 

 二、条件运算

定义:相当于C语言中的“ ? : ”表达式;

格式:表达式1 if 表达式 else 表达式2

规则:先求if后面表达式的值,如果其值为True,则求表达式1,并以表达式1的值为条件运算的结果。如果if后面表达式的值为False,则求表达式2,并以表达式2的值为条件运算的结果。

>>>print ((3 if 4>5 else 7) if 9>8 else 2)
7
# 9>8 is true so express equals (3 if 4>5 else 7) 
# 4>5 so (3 if 4>5 else 7)  equals 7
# therefore ((3 if 4>5 else 7) if 9>8 else 2) = 7

 三、循环结构

(一)while 循环

1. while循环的逻辑图

注释:先判断条件,当条件为true的时候执行循环体,当条件为false的时候结束循环;

2. while _ else 结构

注释:在Python中,可以在循环语句中使用else子句,else中的语句会在循环正常执行完的情况下执行(不管是否执行循环体)。

以下示例中的else语句获得了执行:

#code:
count=int( input("请输入一个数:"))
while count<5:
    print( count, "is less than 5" )
    count=count+1
else:
    print( count,"is not less than 5")

#result:
请输入一个数:3
3 is less than 5
4 is less than 5
5 is not less than 5  

#analysis:
循环体正常结束,else的语句获得了执行

以下示例中的else语句不执行:

#code:
count=int( input("请输入一个数:"))
while count<5:
    print( count, "is less than 5" )
    count=count+1
    if count == 5 : break          #************#
else:
    print( count,"is not less than 5")

#result:
请输入一个数:3
3 is less than 5
4 is less than 5

#analysis:
循环体因为break语句意外跳出,else的语句不执行

(二)for循环(计数循环)

 1.for循环简介

作用:一个通用迭代器,for循环可用于字符串、列表、元组以及其他内置可迭代对象;

一般格式: 其中else语句的触发条件与上述 while 后的 else 一致;

for 目标变量 in 序列对象 :
    语句块
else :
    语句块

执行流程:

注意事项:

①for语句是通过任意序列的元素的元素进行来建立循环的,针对序列的每一个元素执行一次循环体列表、字符串、元组都是序列,可以利用它们来建立循环。

②for循环的循环次数是序列中元素的个数,即序列的长度。可以利用序列的长度来控制循环次数,这时关注的不是序列元素的值,而是元素的个数。

③目标变量的作用是存储每次循环所引用的序列元素的值,在循环体中也可以引用目标变量的值。这时,目标变量不仅能控制循环次数而且直接影响循环体中的运算量。

④可以在for循环体中修改目标变量的值,当程序执行流程再次回到循环开始时,就会自动被设成序列的下一个元素。退出循环之后,该变量的值就是序列中最后的元素。

⑤for循环也支持一个可选的else块,它的功能就像在while循环中一样,如果循环离开时没有碰到break语句,就会执行else块。也就是序列所有元素都被访问过了之后,执行else块。

2.range对象在for循环中的应用

作用:range()函数是一个内置函数,用于生成一个整数序列,经常在for循环中使用。

特点:range()函数生成的序列是一个“惰性序列”,意思是这个序列并不会一次性生成所有数字,而是在每次循环时生成下一个数字。这使得它在处理大范围的数字时更加内存高效。

range([start,]stop[, step])

#start:可选参数,生成的序列的起始值,默认为0。
#stop:必选参数,生成的序列的结束值(不包含该值)。
#step:可选参数,生成的序列的步长,默认为1。

示例:

#输出[100,1000]以内的全部素数
import math
n=0
for m in range( 101,1000,2):
    i,j=2,int(math.sqrt(m) )
    while i<=j:
        if not(m%i):                #注意:当m%i==0时,在Python看来,m%i是False,因此一定要注意
            break
        else:
            i=i+1
    else:
        print(m, end=" ")
        n+=1                        #n统计素数个数
        if n%10==0 : print( "\n")   #一行输出10个素数

(三)循环控制语句

break:跳出循环体;

continue:终止本次循环,进入下一次循环;

pass:空语句,用来占位,什么都不做;