python基础

#python基础

1.判断

1.1 布尔值

典型值:True,False;

非典型值:[],{}…

**布尔函数:**bool(data),返回一个布尔值。

a = bool(12)
print(a)
#True

1.2 if

if 条件判断

a = 12
if a > 12:#为真时执行print()函数
   print("此数大于12!")
#input()函数:内置函数,实现从终端获取一个数据,以字符串格式返回 <class 'str'>
#python内置了浮点型float(data),整型int(data),布尔型bool(data),复数complex(data1,data2)等强制转换函数可将字符串类型转为相应的数据类型。
a = input("请输入你的名字:")
print(a.endswith("acke"))
#判断是否以(str.endwith("data"))data结尾,是则为True;反则False

1.3 if …else

语法

if 表达式:
	代码块1
else:
	代码块2

实例

a = 12
if a >= 12:
   print("此数大于等于12")
else:
   print("此数不大于等于12")
#此数大于等于12
print("-------------------------------------------------------------")
a = input("please input a number:\n")
try:#异常处理
   a = int(a)
   if(isinstance(a,int)) and 0 <= a <= 100:
       #isinstance()函数判断a是不是int数据类型
       print("这是0-100整数!")
except ValueError:
   print("数据输入有误!")

1.4 if…elif…else(多级条件判断)

语法

if 表达式1:
	代码块1
elif 表达式2:
	代码块2
else:
	代码块3

实例

score = 80
if score >= 90:
   print("优秀")
elif score >= 80:
   print("良好")
elif score >= 70:
   print("中等")
elif score >= 60:
   print("及格")
else:
   print("不及格")
#良好

补充:

#字符串内置方法:str.方法
#.upper():判断字符串是否是大写字母
#.lower():判断字符串是否是小写字母
#.isalnum():判断字符串是否由字母,数字,汉字组成
#.isdigit():判断字符串是否是由十进制数字组成
#.isnumberic():判断字符串是否是由数字组成
#.isdecimzl():判断字符串是否是由数值组成
#.istitle():判断每个单词的首字母是否大写
data = '15'
data2 = data.isdigit()
print(data2)

str1 = '\r\n'
str2 = str1.isspace()
print(str2)

1.5 判断嵌套

语法

if condition:
	if condition:
		code
	else:
		code
elif condition:
	code
else:
	code

实例

# 如何优化‘从终端完成数据记录,通过if...else条件判断,得出这个数为100以内的整数’
a = input("please input a number:\n")
try:#异常处理
   if a.isdigit():
       a = int(a)
       if 0 <= a <= 100:
           #isinstance()函数判断a是不是int数据类型
           print("这是0-100整数!")
   else:
       print(a+"不是十进制数字字符串")
except ValueError:
   print("数据输入有误!")

2.循环

2.1 for

2.1.1 break与continue

break vs continue

两个都是python关键字,用来控制循环。break跳出***当层***循环,continue结束***当次***循环。

实例

# 6. 用户登陆:验证用户名和密码正确性,最多验证三次
# 		用户名正确,
#				验证密码
# 				密码正确-登陆成功
# 				密码错误-登陆失败,登陆次数加1,再次输入密码
#     用户名错误-登陆次数加1,继续用户名
count=0
while count<3:
   username = input('请输入用户名')
   password = input('请输入密码')
   a = 2-count
   if username=='admin' and password == 'admin':
       print('登陆成功')
       # 跳出整个循环,当break外存在多层循环时,跳出本层循环
       break
   else:
       if a!=0:
           print('登陆失败,剩余次数为:',a)
           continue
       elif a==0:
           print('密码被锁定,请稍后再试')
           break
   count+=1
2.2.2 for

语法

for element in seq:#可迭代对象
	code

实例

myList = [1, 2, 3, 4, 4]
myStr = "qwert"
myTuple = (1, 2, 3, 5, 4)
myDic = {
    "1":1,
    "2":2,
    "3":3,
    "4":4,
    "5":5
}
for element in myList:
    print(element,end=",")
print()
for element in myDic.items():
    print(element,end=",")
# 1,2,3,4,4,
# ('1', 1),('2', 2),('3', 3),('4', 4),('5', 5)
print("——————————————————————————————————————————————————————")
# range()函数与序列索引操作类似
#    range(stop) -> range object,  当range函数传递一个参数时-创建range对象,for循环访问时从0-stop-1
#    range(start, stop[, step]) -> range object,
#       当range函数传入两个参数时,for循环访问时从start-stop-1,
#       当range函数传入三个参数时,for循环访问时从strat到stop-1,但访问间隔为step参数(step值可正可负)
for i in range(1,100,2):
 print(i,end=',')
print()
myStr = 'AaBbCcDd'
print(myStr[::2])
'''
1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55,57,59,61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,91,93,95,97,99,
ABCD
'''

练习

#九九乘法表
#方法一:
for i in range(1,10):
    for j in range(1,1+i):
        print(i,"*",j,"=",i*j,end=" ")
    print()
#方法二:
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print("%d *%d = %d\t" % (i, j, i*j), end="")
        j += 1
    print()
    i += 1

格式化符号

编号格式化符号含义
1%c字符(python中不存在字
符类型:'a’是代表字符)
2%s在格式化前先通过str()函
数将数据转为字符串类型
3%i带符号的十进制数
4%d与%i作用相同
5%o八进制整数
6%x十六进制整数
7%X与%x作用相同
8%e指数符号
9%E指数符号
10%g%e+%f
11%G%E+%F
12%f浮点数
13%u无符号的十进制整数

2.2 while

语法

while condition:#条件成立时,循环执行code
code
#当condition永远为真时,即为死循环
#释放变量申请内存空间,del 变量名

实例

i = 1
while i <= 10:
	print(i,end=" ")
	i+=1
#1 2 3 4 5 6 7 8 9 10 

练习

#while实现10*10的“方阵”
i=1
while i <= 10:
	j=1
	while j <= 10:
  		j+=1
  		print("*",end=" ")
	print()
	i+=1
#斐波那契数列实现
i = 0
a, b = 1, 1
while i <= 7:
print(a, end=" ")
a, b = b, a + b
i += 1
#1 1 2 3 5 8 13 21 
#输出 1 2 3 4 5 6 7 9 10 
i=0
while i < 10:
   i += 1
   if i==8:
       continue
   print(i,end=" ")
# 1 2 3 4 5 6 7 9 10 

3.函数

含义

用于进行某种功能计算的一系列语句组成的具有名称的组合。

语法

def functionName (参数列表):
	code
   
#code若干语句构成的代码块
#functionName应该符合像标识符那样的命名规范。   
#函数调用格式
functionName(实参)
#或者
if __name__ == '__main__':
   hellopython()

实例

def helloPython():
   print("Hello world!")

#主函数:__main__
#主函数作用:
#1.源文件执行的入口。
#2.调试代码时使用。
if __name__ == '__main__':
   helloPython()
   

参数与返回值

含义

参数:函数在定义时,位于括号里面的数据,参数可有零个到多个。

返回值:函数体中存在一个关键字return,后面所带的内容就是返回值,函数在调用过程中遇到return就退出。

实例

def fib(n):
  a,b=1,1
  while a<n:
      a,b=b,a+b
      print(a,end=" ")
  return a
value = fib(100)
print(value)
#1 2 3 5 8 13 21 34 55 89 144 144

注意:

位置参数:(positional arguments)就是其他语言的参数,其他语言没有分参数的种类是因为只有这一种参数,所有参数都遵循按位置一一对应的原则。

默认参数:在Python中完全等同于C++,引入默认参数是为了在某些情境下提供方便。
形式: 参数名 = 默认值,默认参数必须在最右端(没有可变参数、命名关键字参数和关键字参数),这样才能被解释器正确识别,否则会产生二义性。

实例

def fun1(a=10, b):
   return a + b
>>> fun1(30)
#二义性:这个30究竟是赋值给a的还是b的

可变参数

方式一:

Python函数提供了可变参数,来方便进行参数个数未知时的调用。可变参数将以tuple形式传递。

格式: *参数 (即在参数前加*号)

实例

def getsum(*num):#num是可迭代的对象
   sum = 0
   for n in num:
       sum += n
   return sum

方式二:

是以dict形式传递,即可变参数传递的是参数值,关键字参数传递的是参数名:参数值键值对。

形式:**kw 这是惯用写法。

实例

# 函数不定长传参的第二种方式:参数列表中出现‘**’时,代表多余以‘=’定义参数会转为字典形式
def fun(a,b, *args,**kwargs):
   print(a)
   print(b)
   print(args)
   print(kwargs)

fun(1,2,3,4,5,6,7,8,9,10,'a','b','c','d','e',name='alex',age=20)
'''
1
2
(3, 4, 5, 6, 7, 8, 9, 10, 'a', 'b', 'c', 'd', 'e')
{'name': 'alex', 'age': 20}
'''

可变参数可以接受0个或者多个参数。

关键字参数

实例

def find_area(width, height):

   return width * height

value = find_area(width=12.0,height=13.0)
print(value)

命名关键字参数:Python中的命名关键字参数对传入的关键字参数做了进一步的限制。

格式:在关键字参数前增加一个”**”。*

实例

def personinfo(name, age, *, gender, city): 
   #只能传递gender和city参数
   print(name, age, gender, city)
personinfo('Steve', 22, gender = 'male', city = 'shanghai')
#Steve 22 male shanghai

关键字参数和命名关键字参数的区别在于,前者可以传递任何名字的参数,而后者只能传递*后面名字的参数。

一次函数调用可以传递以上所述任何一种参数或者多种参数的组合,当然也可以没有任何参数。

正如默认参数必须在最右端一样,使用多种参数时也对顺序有严格要求,也是为了解释器可以正确识别到每一个参数。

顺序:基本参数、默认参数、可变参数、命名关键字参数和关键字参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值