变量
python的变量有整型、浮点数、字符串和布尔型,如下:
- price = 10 #整型
- rating = 4.9 #浮点数
- name = ‘Kelemi’ #字符串
- is_published = True #布尔型
python的变量的命名标准是下划线命名方法,也就是全用小写单词,单词之间用下划线分隔。
输入
input函数可以获取输入
name = input('what is your name')
favorite_color = input('what is your favorite color?')
print(name + ' likes ' + favorite_color)
类型转换
有不少内置函数可以进行类型转换,用法看命名就知道,如
- int()
- float()
- bool()
- …
可以检查类型,用的是
- type()
看个例子,用于磅与公斤的转换,很简单一目了然
weight_lbs = input('weight(lbs): ')
weight_kg = int(weight_lbs) * 0.45
print(weight_kg)
字符串
字符串可用单引号或双引号包起来,如果字符串本身包括双引号,可用单引号包起来,反之亦然。
course = 'python for "Beginners"'
course = "python for 'Beginners'"
有多行时,可用三重引号,避免每行都要输引号以及拼接工作
course = ”’
Hi chen,
Here is my first email to you.
Thank you.
Kelemi
”’
字符串相当于字符的列表(后面我们会详细讲解列表),python中强大的列表功能在获取子串方面简直不要太方便了。
course = ‘Python for Beginners’
print(course[0]) #输出第一个字符P
print(course[-1]) #输出最后一个字符s
print(course[0:3]) #输出Pyt
print(course[1:3]) #输出yt
print(course[0:-1]) #将最后的一个字符s去掉
print(course[:3]) #相当于[0:3]
print(course[3:]) #去掉前3个字符:hon for…到最后
print(course[:]) #全复制
字符串可以用大括号来格式化,使阅读更加直观。注意前缀是f开头,等同于字符串的format方法。
first = ‘chen’
last = ‘yongping’
msg = f'{first}{last} is a coder’
print(msg)
字符串方法介绍。注意python各方法不改变原始字符串,且都是大小写敏感的。
course = ‘python for Beginners’
- print(len(course))
- # 内置函数len计算字符串长度,它不特定用于字符串,其他列表等数据类型也可用。
- print(course.upper()) # 转换成大写
- print(course.lower()) # 转换成小写
- print(course.title()) # 首字符大写
- print(course.find(‘o’)) # 寻找第一个出现的字符或字符串,返回索引
- print(course.replace(‘python’, ‘Javascript’)) # 替换
- print(course) #确认原始字符串未被改变
- print(‘for’ in course) # 查找字符串是否包括在内,返回True或False
算术运算符
print(10+3)
print(10-3)
print(10/3) #3.33333浮点数
print(10//3) #3 整数
print(10%3) #1 余数
print(10**3) #1000 3次方
与其他语言类似也可以简化用+=,-=等
x=10
x += 10
x -=10
运算优先级
x = 10 + 3 * 2 ** 3
如上,**优先级最高,*次之,然后是+
括号可以改变优先级
数学函数
x = 2.9
round(x) # 3 四舍五入
abs(-2.9) # 2.9 绝对值
这些是内置函数,如果要用到高级的数学函数,需要导入数学模块
import math
math.ceil(2.9) # 3
math.floor(2.9) # 2
可以用google搜索 “python3 math moudle”查看相关用法
If语句
python中,包含不用大括号,而是用缩进的方法,书写的对齐格式很重要。
is_hot = False
is_cold = False
if is_hot:
print(“It’s a hot day”)
print(“Drink plenty of water”)
elif is_cold:
print(“It’s a cold day”)
print(“Wear warm clothes”)
else:
print(“It’s a lovely day”)
print(“Enjoy your day”) #总会被执行
逻辑运算
包括:
- and
- or
- not
下面是一个银行贷款判断逻辑。
has_good_credit = True #信用
has_criminal_record = False #犯罪记录
if has_good_credit and not has_criminal_record:
print(“Eligible for loan”) #允许贷款
比较运算符
包括:
- >,>=
- <,<=
- ==,!=
While循环
简单例子:
i = 1
while i <= 5:
print(‘*’ * i)
i = i+1
print(‘Done’)
while-else,猜数字游戏:
guess_count = 0
guess_limit = 3
secret_number = 9
while guess_count < guess_limit:
guess = int(input(‘Guess: ‘))
guess_count += 1
if guess == secret_number:
print(‘You won!’)
break
else:
# 循环语句也可以有else,循环如果不中断,就会执行到else
print(“Sorry,you failed!”)
for循环
用于遍历列表 或 范围的对象range
for item in ‘Python’: # 字符串用为字符列表
print(item)
for item in [‘chen’, ‘kelemi’, ‘xiaomi’]:
print(item)
for item in range(10):
print(item) #0,1,2…9
for item in range(5, 10):
print(item) #5,6,7,8,9
for item in range(5, 10, 2):
print(item) #步长为2,结果是5,7,9
与while类似,也有for-else的结构,只有当for语句中全部循环完未被中断(break)才会执行else语句,如下:
successfule = False
for number in range(3):
print(‘Attempt’)
if successfule:
print(‘successful’)
break
else:
print(‘Attempt 3 times and failed’)
㠌套循环
for x in range(4):
for y in range(3):
print(f'({x},{y})’)
三元条件和链接比较运算符
python有接近自然语言的用法
- 三元条件语句
age = 22message = “Eligible” if age >= 18 else “Not eligible”print(message) - 链接比较运算符
age = 22if 18 < age < 65: print(“Eligible”)
函数
定义函数:
一般先定义函数再调用,顺序调换可能会出错。
根据python的约定,函数定义与后面的调用语句建议空两格
def great_user(): # 定义函数
print("Hi there")
print("Welcome aboard")
print("start")
great_user() # 调用函数
print("Finish")
参数:
函数可以传入多个参数,我们修改上面的函数
def great_user(first_name, last_name): # 添加了2个参数
print(f"Hi {first_name}{last_name}") # 使用传入的参数
print("Welcome aboard")
print("start")
great_user('chen', 'yongping') # 传参调用函数
print("Finish")
关键字参数:
上面的参数是位置参数,传入时需要一一对应,python可以使用关键字参数传入。
我们可以将这句
great_user(‘chen’, ‘yongping’)
改成
great_user(last_name=’yongping’, first_name=’chen’)
尽管没按函数定义的顺序传入参数,但因使用了关键字参数,执行结果是一样的。
建议:
- 大部分情况下可以使用位置参数
- 在数值作为参数时,可以考虑用关键字参数提高可读性
- 在混合使用位置参数和关键字参数时,先用位置参数,再用关键字参数
返回语法:
用return返回
def square(number):
return (number*number)
默认情况下所有函数都返回None,但不显式显示
def square(number):
print(number*number)
# return None 这一句可以不用写出来,是隐含的。
参数默认值:
定义函数时,可以设置参数的默认值。调用函数时如果不明确给出值,则使用默认值。
def increment(number, by=1):
# 设置参数by默认值为1
return number+by
print(increment(2))
# 只传一个number值2,by使用默认值1,输出3
print(increment(2, 5))
# by传值为5,覆盖默认值1,输出7
xargs 接受多个参数:
有时可能需要传入不确定个数的参数,对于python来说是很容易的,用* 符号就能做到。
def multiply(*numbers):
# *numbers 表示可以接受多个参数,都存入数组numbers中
total = 1
for number in numbers:
total *= number
return total
print(multiply(1, 2, 3, 4, 5))
# 输出120
xxargs 接受多个键值对参数:
有时候可能需要接受多个键值对,则需要使用两个*,这样会将传过来的键值对存到字典(后面的章节会讲到)中。
def save_user(**user):
# user是一个字典,键值对都存入这个字典
print(user)
save_user(id=1, name=’kelemi’, age=18)
# 输出一上字典 {‘id’: 1, ‘name’: ‘kelemi’, ‘age’: 18}
小结
本节介绍python的基本用法。下一节是python的重头戏,介绍python的列表、集合、字典。敬请期待。