python编程学习——第一周

第一周

python学习笔记和做的一些习题 (python编程快速上手——让繁琐工作自动化)

第一章节 python基础

一些常用的数学操作符总结(优先级从高到低):
操作符操作
**指数
%取余数
//整除
/除法
*乘法
-减法
+加法
常见数据类型总结:
数据类型举例
整型-2、-1、0、1
浮点型-1.20、-0.1、1.0、2.25
字符串‘a’、‘abc’ 、‘aaa’、‘11cars’

字符串的连接:+
字符串的复制:*

赋值语句的构成:一个变量名、一个等号、以及要储存的值

变量名应该满足的条件:

1、只能是一个词
2、只可以包含字母、数字和下划线
3、不能用数字开头
而且变量名是区分大小写的。

常用函数

print()函数:将括号内的字符串显示在屏幕上;
input()函数:等待用户输入文本,并按回车键;
len()函数:字符串中字符个数;
str()函数:将传入值值求值为字符串形式;
int()函数:将传入值值求值为整数;
float()函数:将传入值值求值为浮点数;

第一章习题:

1、下面哪些是操作符,哪些是值?

*
'hello'
-88.8
-
/
+
5

操作符有:*、-、/、+
值:‘hello’、-88.8、5

2.下面哪个是变量,哪个是字符串?

spam
'spam'

变量:spam
字符串:‘spam’

3.说出 3 种数据类型。
三种数据类型:整型、浮点型、字符串

4.表达式由什么构成?所有表达式都做什么事?
表达式的构成: 运算操作符和操作数一起构成表达式;所有的表达式是在语句中,根据某种条件得出的或计算出的结果,然后经过语句来处理的代码。

5.本章介绍了赋值语句,如 spam = 10。表达式和语句有什么区别?
语句是可以单独执行的、能够产生实际效果的代码;表达式是在语句 中,根据某种条件得出的或计算出的结果,然后经过语句来处理的代码。

6.下列语句运行后,变量 bacon 的值是什么?

bacon = 20
bacon + 1

结果为20

7.下面两个表达式求值的结果是什么?

'spam' + 'spamspam'
'spam' * 3

结果都是spamspamspam

8.为什么 eggs 是有效的变量名,而 100 是无效的?
'100’是无效的变量名,因为变量名不能用数字开头。
'egg’是有效的变量名,因为变量名中只能是一个词、只能含有数字、字母、下划线,它含有字母;并且没有以数字开头。

9.哪 3 个函数能分别取得一个值的整型、浮点型或字符串版本?
int():求一个值的整型
float():求一个值的浮点型
str():求一个值的字符串

10.为什么这个表达式会导致错误?如何修复?

'I have eaten ' + 99 + ' burritos.'

+是字符串的连接符,其中99是整型,所以要求出99的字符串形式,用str(99):正确的表达式应为:'I have eaten '+str(99)+‘burritos’

第二章节 控制流

布尔值:True、False
常用的比较操作符:
操作符含义
==等于
!=不等于
<小于
>大于
<=小于等于
>=大于等于
布尔操作符:and、or、not

其中and、or是二元布尔操作符。
如果两个布尔值都为True,and操作符就将表达式求值为True,否则求值为False。
只要有一个布尔值为True,or操作符就将表达式求值为True,如果都为False,所求值为False。

and操作符的真值表:

表达式结果
True and TrueTure
True and FalseFalse
False and TrueFalse
False and FalseFalse

or操作符的真值表:

表达式结果
True or TrueTure
True or FalseTrue
False or TrueTrue
False or FalseFalse

not操作符:只作用于一个布尔值
not操作符的真值表

表达式结果
not TrueFalse
not FalseTrue
控制流元素:条件和代码块

条件:控制流语句的开始部分,并且条件总是求值为一个布尔值,根据条件求值的结果,来决定下一步做什么。
代码块:3条规则

  • 缩进增加时,代码块开始。
  • 代码块可以包含其他代码块。
  • 缩进减少为零,或者减少为外面包含代码块的缩进,代码块就结束了。
控制流语句

if 语句:

if name == 'xiaoming':       ##if 条件:
   print('Hello,xiaoming')   ##   代码块(if子句)

else 语句:

if name == 'xiaoming':      
   print('Hello,xiaoming')  
else:                       ##else 条件(name != 'xiaoming'):
   print('Hello!')          ##     代码块(else子句)

elif 语句:

if name == 'xiaoming':    
   print('Hello,xiaoming')
elif name == 'xiaofang':    ## elif 条件:
   print('Hello,xiaofao')   ##      代码块(elif子句)
elif name == 'dongdong':
   print('Hello,dongdong')

while循环语句:可以让代码一遍有一遍的执行,while循环中,如果条件为True,子句就会执行。

i = 0
while i < 5:                ## while 条件:
     print('Hello!')        ## 缩进的代码块(while子句)
     i=i+1

break语句:让执行提前跳出循环,且break语句只包含break关键字。

while True:
      print('Hello,name!')  ##无限循环
      name=input()          ##输入名字
      if name == 'xiaoming':
         break              ##输入名字为xiaoming,break语句就会运行;否则继续循环
print('Hello,xiaoming')     ## 已跳出循环     

continue语句:用于循环内部,执行时遇到就会跳回循环开始处。

while True: 
      print('Hello!')
      name = input()
      if name != xiaoming 
         continue
      print('Oh!xiaoming,nice to meet you!')

for 循环和range()函数:可以固定程序执行次数。

for i in range(5):
   print('Hello!+str(i)')

for循环和while循环可以做同样的事,for循环更加简洁一点。
range()开始,停止、步长参数:

for i in range(0,10)     ## 0为起始值,10为终值,默认1为步长
    ptint(i)             ##输出结果为0、1、2、3、4、5、6、7、8、9
for i in range(0,10,2)   ## 0为起始值,10为终值,2为步长
    ptint(i)             ##输出结果为0、2、4、6、8
导入模块

import()语句
from import语句

第二章习题

1.布尔数据类型的两个值是什么?如何拼写?
布尔数据类型:True、False。

2、3 个布尔操作符是什么?
3个布尔操作符:and、or、not。

3.写出每个布尔操作符的真值表(也就是操作数的每种可能组合,以及操作
的结果)。
3、真值表:
and操作符的真值表:

表达式结果
True and TrueTure
True and FalseFalse
False and TrueFalse
False and FalseFalse

or操作符的真值表:

表达式结果
True or TrueTure
True or FalseTrue
False or TrueTrue
False or FalseFalse

not操作符的真值表

表达式结果
not TrueFalse
not FalseTrue

4.以下表达式求值的结果是什么?

(5 > 4) and (3 == 5)
not (5 > 4)
(5 > 4) or (3 == 5)
not ((5 > 4) or (3 == 5))
(True and True) and (True == False)
(not False) or (not True)

结果为:
程序运行结果

5.6 个比较操作符是什么?
六个比较操作符:

操作符含义
==等于
!=不等于
<小于
>大于
<=小于等于
>=大于等于

6.等于操作符和赋值操作符的区别是什么?
等于操作符"==":求两边值是否相等。
赋值操作符"=":将右边的值放入左边的变量中。

7.解释什么是条件,可以在哪里使用条件。
条件就是控制流语句的开始部分,并且条件总是求值为一个布尔值,根据条件求值的结果,来决定下一步做什么。一般控制流语句中都含有条件。

8.识别这段代码中的 3 个语句块:

spam = 0
if spam == 10:
   print('eggs')
   if spam > 5:
      print('bacon') 
   else:
      print('ham') 
      print('spam')
print('spam')

赋值语句、if语句、else语句

9.编写代码,如果变量 spam 中存放 1,就打印 Hello,如果变量中存放 2,就打印 Howdy,如果变量中存放其他值,就打印 Greetings!

spam = int(input())  ##1、2为整型,所以要用到int()将输入值转为整型
if spam == 1:
  print('Hello')
elif spam == 2:
  print('Howdy')
else:
  print('Greetings!')

程序运行结果
10.如果程序陷在一个无限循环中,你可以按什么键?
如果一个程序陷入无限循环,可以用Ctrl+C键中止循环。

11.break 和 continue 之间的区别是什么?
break语句执行后可以让整个循环停止;continue语句执行后返回到循环开始的地方。

12.在 for 循环中,range(10)、range(0, 10)和 range(0, 10, 1)之间的区别是什么?
range(10)中只含有一个参数,10为终值,默认从0开始,且步长为1。
range(0,10)中含有两个参数,0为起始值,10为终值,默认步长为1。
range(0,10,1)中含有三个参数,0为起始值,10为终值,步长为1。

13.编写一小段程序,利用 for 循环,打印出从 1 到 10 的数字。然后利用 while循环,编写一个等价的程序,打印出从 1 到 10 的数字。
从1到10:

for i in range(1,11):
    print(i)
i=1
while i < 11:
    print(i)
    i=i+1

14.如果在名为 spam 的模块中,有一个名为 bacon()的函数,那么在导入 spam模块后,如何调用它?
spam.bacon()

第三章习题

1.为什么在程序中加入函数会有好处?
函数的一个主要目的就是将需要多次执行的代码放在一起。
比如:创建一个函数hello()

def hello()       ##定义函数
    print('Hello')
    print('Where are you from?')  
hello()           ##函数调用
hello()
hello()           ##执行三次函数

程序执行结果为
运行结果

print('Hello')
print('Where are you from?') 
print('Hello')
print('Where are you from?') 
print('Hello')
print('Where are you from?') 

上面的函数hello()相当于将print(‘Hello’)和print(‘Where are you from?’) 这两个需要多次执行的代码放在一起。

2.函数中的代码何时执行:在函数被定义时,还是在函数被调用时?
函数中的代码在函数被调用时执行。

def hello(name):            ##定义函数,hello为函数名称,name为参数
    print('Hello,' + name)
hello('xiaoming')           ##调用函数,此时函数被执行
hello('honghong')   

输出结果:
在这里插入图片描述

3.什么语句创建一个函数?
可以用def语句创建一个函数。

4.一个函数和一次函数调用有什么区别?
一个函数表示的是函数被定义,可以用def语句来定义自己需要的函数,如 def name();
一次函数调用表示这个函数被执行,如name();

5.Python 程序中有多少全局作用域?有多少局部作用域?
有一个全局作用域,有无数个局部作用域。

6.当函数调用返回时,局部作用域中的变量发生了什么?
当函数调用返回时,余部作用域中的变量被销毁。

7.什么是返回值?返回值可以作为表达式的一部分吗?
返回值是函数调用求值的结果,称为函数的“返回值”。如果在return语句中使用了表达式,返回值就是该表达式求值结果;也可以直接返回为一个值。

8.如果函数没有返回语句,对它调用的返回值是什么?
如果函数没有返回语句,对它调用的返回值为None。

9.如何强制函数中的一个变量指的是全局变量?
可以使用global关键字强制函数中的一个变量指的是全局变量。

10.None 的数据类型是什么?
None 的数据类型NoneType。

11.import areallyourpetsnamederic 语句做了什么?
用import语句导入了areallyourpetsnamederic模块。

12.如果在名为 spam 的模块中,有一个名为 bacon()的函数,在引入 spam 后,如何调用它?
函数可以用spam.bacon()来调用。

13.如何防止程序在遇到错误时崩溃?
使用try expect 语句

14.try 子句中发生了什么?except 子句中发生了什么?
如果在try子句中的代码发生了一个错误,程序执行就会立即转到except子句的代码。

第三章节实践

1、编写一个名为 collatz()的函数,它有一个名为 number 的参数。如果参数是偶数,那么 collatz()就打印出 number // 2,并返回该值。如果 number 是奇数,collatz()就打印并返回 3 * number + 1。
然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collatz(),直到函数返回值1(令人惊奇的是,这个序列对于任何整数都有效,利用这个序列,你迟早会得到 1!既使数学家也不能确定为什么。你的程序在研究所谓的“Collatz序列”,它有时候被称为“最简单的、不可能的数学问题”)。

def collatz(number):
    print(number)
    if number == 1:
       print('结束!')
    elif number % 2 == 0:
       collatz(number//2)
    else :
       collatz(3*number+1)

while True:
    n=int(input('请输入一个数字: '))   
    if  collatz(n) == 1:
        break      

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值