今天的内容是变量和函数
chapter_3-Variables_and_Functions
变量
与C语言不同,python的变量不需要标注函数类型,不过变量名也依然有一定规范:
- 以字母/下划线开头(不可以以数字开头)
- 以字母、数字、下划线组成
- 大小写敏感
- 需要避免使用保留字命名
以下代码可以查询保留字
import keyword
keyword.kwlist
对于变量,旧的值会覆盖新的值,而且python支持多变量赋值
a=b=c=2
print(f"a={a},b={b},c={c}")
a,b,c=1,3,4
print(f"a={a},b={b},c={c}")
函数
缩进是python的生命,body部分结束缩进意味着函数部分结束
语句与表达式
表达式本身是值、计算结果也是值
语句本身不是值、不能打印、但可以执行一些操作
变量作用域
我的理解是变量的有效范围,范围内可用,范围外不可用(不可见)
尽量避免全局变量,多多使用局部变量
返回
一旦return,函数结束
Helper Functions
存储经常被用到的一系列参数,这种函数叫做Helper Function
小练习
写了一个函数玩一玩
def now(value):
def theyR_Gone(who):
print(f"{who}'re gone",end=", ")
if(who=='Roomates'):
print("celebration!q(≧▽≦q)")
return 11111
if(who=='Cats'):
print("so sad...இ௰இ")
return 0
if(value==11111):
print("CS:2, start!")
else:
print("QAQ")
now(theyR_Gone('Roomates'))
# Roomates're gone, celebration!q(≧▽≦q)
# CS:2, start!
now(theyR_Gone('Cats'))
# Cats're gone, so sad...இ௰இ
# QAQ
作业
做作业的时候有个判断数字的题,先用的isinstance(x,(int,float))判断是否为数字,通过率只有75%,想起来教学视频里用的是numbers库里的数据类型,查了一下才发现python里面的数字(Number)类型包括Integral(int)、Real (float)、Complex (complex),所以判断的时候直接引入数字的抽象基类numers.Number作为判断基准即可
import ast
x = ast.literal_eval(input())
# 使用isinstance函数判断x是否为数字数据类型
import numbers
def isNumber(x):
return isinstance(x,numbers.Number)
print(isNumber(x))
另外一道题,Number of Pool Ball Rows,写代码的时候忘记向上取整,导致没有一次通过,以下是修改后的代码
import ast
import math
n = ast.literal_eval(input())
rows = ((8 * n + 1) ** 0.5 - 1)/ 2
print(rows)
print(math.ceil(rows))