Python语法入门
程序员文章站
2024-01-14 19:59:58
...
一.变量
1.变量
-
Python 中的变量和C,Java不同,变量不需要声明类型,但是每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建
-
Python变量不声明类型,并不意味着变量没有类型
price = 7.5
weight = 8.5
money = price * weight
money = money - 5
print(money)
2.变量的类型
- 在内存中创建一个变量,会包括:
- 变量的名称
- 变量保存的数据
- 变量存储数据的类型
- 变量的地址
- 在运行的时候,Python解释器会根据赋值语句等号右侧的数据自动推导出变量中保存数据的准确类型
name = "小唐"
age = 20
gender = False
height = 1.80
-
在Python中,数据类型可以分为数字型和非数字型
-
数字型
- 整型
- 浮点型
- 布尔型
- 真
- 假
- 复数型
- 主要用于科学计算,例如:平面场问题,波动问题,电感电容等问题
-
非数字型
- 字符串
- 列表
- 元组
- 字典
-
在Python2.x中,整数根据保存数值长度分别为: int,long
-
使用type函数可以查看一个变量的类型
name = "小唐"
print(type(name))
age = 20
print(type(age))
gender = False
print(type(gender))
height = 1.80
print(type(height))
<class 'str'>
<class 'int'>
<class 'bool'>
<class 'float'>
-
数字类型变量之间可以直接进行计算
-
字符串变量之间使用+拼接字符串
name1 = "小唐"
name2 = "小李"
print(name1+name2)
- 字符串变量可以和整数使用*重复拼接相同的字符串
- 数字型变量和字符串之间不能进行其他计算
3.变量的输入
- 在Python中可以使用input函数从键盘等待用户输入
- 用户输入的任何内容Python都认为是一个字符串
name = input("请输入你的密码:")
print(name)
- 类型转换函数
int(x):把x转换成整型
float(x):把x转换成浮点型
...
4.变量的格式化输出
- %被称为格式化操作符,专门用于处理字符串中的格式
- 包含%的字符串,被称为格式化字符串
- %和不同的字符连用,不同类型的数据需要使用不同的格式化字符
%s 字符串
%d 有符号十进制整数,%06d表示输出的整数显示位数,不足的地方使用0补全
%f 浮点数 %.02f表示小数点后只显示两位
%% 输出%
name = "小唐"
print("我叫%s"%name)
weight = 75
print("体重为%.6d"%weight)
price = 1.75
print("价格为%.02f"%price)
bai = 0.75
print("百分比为%f%%"%(bai*100))
/*
我叫小唐
体重为000075
价格为1.75
百分比为75.000000%
*/
二.条件语句
1.if…else语句
age = input("请输入您的年龄")
age = int(age)
if age<=18:
print("未成年人禁止入内")
else:
print("欢迎")
2.逻辑运算
- 与:and
- 或:or
- not 条件: 在开发中,通常希望某个条件不满足时,执行一些代码,可以使用not ;另外,如果需要拼接复杂的逻辑计算条件,同样可能使用到not
age = input("请输入您的年龄")
age = int(age)
if age>=0 and age<=120:
print("记录成功")
else:
print("你在逗我嘛")
score1 = int(input("请输入您的语文成绩"))
score2 = int(input("请输入您的数学成绩"))
if score1>=60 or score2>=60:
print("成绩合格")
else:
print("不合格")
worker = False
if not worker:
print("进入吧")
else:
print("不是本公司员工")
3.if语句进阶
- elif
- 在开发中,使用if可以判断条件
- 使用else可以处理条件不成立的情况
- 但是,如果希望再增加一些条件,条件不同,需要执行的代码也不同时,就可以使用elif
holiday_name="生日"
if holiday_name =="情人节":
print("买玫瑰")
print("看电影")
elif holiday_name=="平安夜":
print("买苹果")
print("吃大餐")
elif holiday_name =="生日":
print("买蛋糕")
else:
print("每天都是节日")
/*
买蛋糕
*/
####4.if嵌套
has_ticket = True
knife_length = 20
if has_ticket:
print("请上车")
if knife_length<=20:
print("可以上车")
else:
print("请放下刀才能上车")
else:
print("大哥先买票")
####5.剪刀石头布练习
# 导包
import random
number = int(input("请出拳:")) # 1为剪刀 2为石头 3为布
computer = random.randint(1,3)
print(computer)
if (number==1 and computer==3) or (number==2 and computer==1) or(number==3 and computer==2):
print("你牛逼")
elif number==computer:
print("平局")
else:
print("很遗憾,你输了")
三.循环语句
1.while语句
i = 1
while i<=5:
print(i)
i+=1
/*
1
2
3
4
5
*/
- Python中的计数方法:自然计数法(从1开始), 程序计数法(从0开始)
- 在循环中,break和continue和以往的语言一致的
- print函数默认末尾增加一个换行
hang = 1
while hang<= 5:
lie=1
while lie<=hang:
print("*",end="") #不会换行
lie+=1
print("")
hang+=1
/*
*
**
***
****
*****
*/
- 九九乘法表
hang = 1
while hang<= 9:
lie=1
result=1
while lie<=hang:
result=lie*hang
print("%d * %d = %d" %(lie,hang,result),end="") #不会换行
print(" ",end="")
lie+=1
print("")
hang+=1
/*
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
*/
四.函数
1.函数的定义
def 函数名():
函数封装的代码
....
- 可以由字母,下划线和数字组成
- 不能以数字开头
- 不能与关键字重名
def hello():
print("hello python")
hello()
2.函数的参数
- 在函数名后面小括号内部填写参数
- 多个参数之间使用,分隔
def sum(num1,num2):
result=num1+num2
print("%d"%result)
sum(10,50)
/*
60
*/
3.函数的返回值
def sum(num1,num2):
result=num1+num2
return result
num = sum(10,50)
print(num)
/*
60
*/
def pri(char,times):
print(char*times)
pri("hi ",50)
4.模块中的函数
- 模块就好比是工具包,要想使用这个工具包中的工具,就需要导入import这个模块
- 每一个以扩展名py结尾的python源代码文件都是一个模块
- 模块也是一个标识符
def pri(char,times):
print(char*times)
name="小唐"
import hello
hello.pri("hi ",50)
print(hello.name)
五.高级变量类型
1.列表(List)
- 列表是Python种使用最频繁的数据类型,在其他语言中通常叫做数组
- 可以存储不同的数据类型
name_list = ["zhangsan","lisi","wangwu"]
#取值
print(name_list[0])
#取索引
print(name_list.index("wangwu"))
#修改
name_list[0]="小唐"
print(name_list[0])
#增加数据
name_list.append("小李")
name_list.insert(1,"小张")
print(name_list)
temp_list = ["孙悟空","猪八戒"]
temp_list.extend(name_list)
print(temp_list)
#删除
name_list.remove("wangwu")
print(name_list)
#pop方法默认可以把列表中最后一个元素删除
name_list.pop()
print(name_list)
#可以指定要删除元素
name_list.pop(2)
print(name_list)
#清空
name_list.clear()
print(name_list)
/*
zhangsan
2
小唐
['小唐', '小张', 'lisi', 'wangwu', '小李']
['孙悟空', '猪八戒', '小唐', '小张', 'lisi', 'wangwu', '小李']
['小唐', '小张', 'lisi', '小李']
['小唐', '小张', 'lisi']
['小唐', '小张']
[]
*/
name_list = ["张三","李四","王五"]
#del用来将一个变量从内存中删除
del name_list[1]
print(name_list)
name="小明"
del name
#print(name) name已经从内存删除,后续不能再使用这个变量
list_len = len(name_list)
print(list_len)
#统计列表中某一个数出现次数 数据不存在,程序会报错
count = name_list.count("张三")
print(count)
/*
['张三', '王五']
2
1
*/
name_list = ["abc","cdf","edf","wsd"]
num_list = [6,8,4,1,10]
#默认升序
name_list.sort()
num_list.sort()
print(name_list)
print(num_list)
name_list.sort(reverse=True)
num_list.sort(reverse=True)
print(name_list)
print(num_list)
#反转
name_list.reverse()
num_list.reverse()
print(name_list)
print(num_list)
/*
['abc', 'cdf', 'edf', 'wsd']
[1, 4, 6, 8, 10]
['wsd', 'edf', 'cdf', 'abc']
[10, 8, 6, 4, 1]
['abc', 'cdf', 'edf', 'wsd']
[1, 4, 6, 8, 10]
*/
- 迭代遍历
#迭代遍历 每一次循环,数据都会保存在my_name这个变量中
name_list = ["张三","李四","王五","王晓日"]
for my_name in name_list:
print("我的名字叫 %s" % my_name)
/*
我的名字叫 张三
我的名字叫 李四
我的名字叫 王五
我的名字叫 王晓日
*/
2.元组(Tuple)
- 与列表相似,不一样的是元组的元素不能修改
info_tuple = ("zhangsan","xiaosi","zhangsan","123")
print(info_tuple[0])
print(info_tuple.index("zhangsan"))
count = info_tuple.count("zhangsan")
print(count)
print(len(info_tuple))
/*
zhangsan
0
2
4
*/
- 元组遍历
info_tuple = ("zhangsan","xiaosi","zhangsan","123")
for my_tuple in info_tuple:
print(my_tuple)
- 元组与格式化字符串
info_tuple = ("zhangsan",175,76.5)
print("姓名: %s 身体:%d 体重:%.2f" %("zhangsan",175,76.5))
print("姓名: %s 身体:%d 体重:%.2f" %(info_tuple))
- 元组与列表之间转换
list(列表元素):把元组转换成列表
tuple(列表元素):把列表转换成元组
3.字典
- 字典是除列表以外Python之中最灵活的数据类型
- 字典同样可以用来存储多个数据
- 列表有序,字典无序
- 字典用{}定义
- 字典使用键值对存储数据
- 字典的增删改
xiaoming = {"name":"小明","gender":True,"Weight":75,"Height":179}
print(xiaoming)
#取值
print(xiaoming["name"])
#修改
xiaoming["name"]="小唐"
print(xiaoming)
#删除
xiaoming.pop("name")
print(xiaoming)
xiaoming.clear()
print(xiaoming)
/*
{'name': '小明', 'gender': True, 'Weight': 75, 'Height': 179}
小明
{'name': '小唐', 'gender': True, 'Weight': 75, 'Height': 179}
{'gender': True, 'Weight': 75, 'Height': 179}
{}
*/
- 字典的计数,合并
xiaoming = {"gender":True,"Weight":75,"Height":179}
print(len(xiaoming))
xiaohuang = {"name":"小明"}
#合并 如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
xiaoming.update(xiaohuang)
print(xiaoming)
/*
3
{'gender': True, 'Weight': 75, 'Height': 179, 'name': '小明'}
*/
- 字典的循环遍历
xiaoming = {"gender":True,"Weight":75,"Height":179}
for k in xiaoming:
print("%s:%s"%(k,xiaoming[k]))
/*
gender:True
Weight:75
Height:179
*/
card_list=[{"name":"小明","qq":"478541254","phone":"110"},{"name":"小黄","qq":"414741254","phone":"120"}]
for card_info in card_list:
print(card_info)
for card_info in card_list:
for card_id in card_info:
print("%s:%s "%(card_id,card_info[card_id]),end="")
print("")
/*
{'name': '小明', 'qq': '478541254', 'phone': '110'}
{'name': '小黄', 'qq': '414741254', 'phone': '120'}
name:小明 qq:478541254 phone:110
name:小黄 qq:414741254 phone:120
*/
4.字符串
- 可以使用索引来获取一个字符串中指定位置的字符
- 也可以使用for来遍历
str1="aswedc21"
str2="小唐h哈哈哈"
print(str1[2])
for char in str2:
print(char,end="")
- 字符串长度,计数,位置
str1="hello hello"
print(len(str1))
print(str1.count("llo"))
print(str1.index("o"))
/*
11
2
4
*/
- 字符串查找,替换
hello_str="hello world"
#判断是否以指定字符串开始
print(hello_str.startswith("hello"))
print(hello_str.startswith("Hello"))
#判断是否以指定字符串结束
print(hello_str.endswith("world"))
#查找指定字符串
# index同样可以查找指定字符串在大字符串的索引
print(hello_str.find("llo"))
# index如果指定字符串不存在,会报错
print(hello_str.find("abc"))
# 替换字符串
# 注意:执行完成后,会返回一个新字符串
# 不会修改原有字符串内容
print(hello_str.replace("world","python"))
print(hello_str)
/*
True
False
True
2
-1
hello python
hello world
*/
-
文本对齐
-
去除空白字符
-
字符串拆分和连接
-
字符串的切片
num_str="0123456789"
#截取2到5位置
print(num_str[2:6])
#截取2到末尾
print(num_str[2:])
#截取从开始到5位置
print(num_str[0:6])
#截取从开始到5位置
print(num_str[:6])
#截取完整字符串
print(num_str[:])
#从开始位置,每隔一个字符 步长2
print(num_str[::2])
#从1开始,每隔一个字符 步长还是2
print(num_str[1::2])
#倒数第一个字符
print(num_str[-1])
#从2开始到倒数第一个-1
print(num_str[2:-1])
#末尾两个字符(倒数第二个开始到末尾)
print(num_str[-2:])
print(num_str[0::-1])
#字符串逆
print(num_str[-1::-1])
print(num_str[::-1])
/*
2345
23456789
012345
012345
0123456789
02468
13579
9
2345678
89
0
9876543210
9876543210
*/
5.公共方法
- 内置函数
- 切片
-
运算符
-
完整for循环语法
for 变量 in 集合
循环代码
else:
没有通过break退出循环,循环结束,会执行的代码
student_info = [{"name":"小张"},{"name":"阿土"}]
first_name="小黄"
for stu in student_info:
print(stu)
if stu["name"]==first_name:
print("找到了%s同学" %first_name)
break
else:
print("没有找到%s同学" %first_name)
print("循环结束")
上一篇: 小米刷新吉尼斯纪录:奇迹是如何创造的
下一篇: FreeMaker的基本使用