Python之路(二)——基础语法
本节内容
- 变量
- 注释
- 换行
- 用户输入
- 数据类型
- 数据运算
- if ...else语句
- while 循环
- for 循环
- break and continue
一、变量
源自数学,在计算机领域中指 把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字
名字:变量名 or 变量 一段数据:变量值 or 值
声明变量
Python中第一次对变量进行赋值即声明,值得类型即为变量类型
my_name = "小屁孩"
print(my_name)# "小屁孩"
变量命名规则:
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
- ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
二、注释
用于源代码解释说明或者告知编译器脚本相关信息
#-*-coding=utf-8-*-
#!/usr/bin/env python
print("Hello,World!")# 打印Hello,World内容
单行注释
#开头开头
多行注释
'''
被注释内容
'''
PyCharm 中注释快捷方式: 选中待注释行,快捷键Ctrl /
三、换行
为了方便阅读代码,有时使用换行来美化代码
显示换行
year = 2018
month = 6
day = 7
hour = 10
minute = 58
second = 20
if 1900 < year < 2100 and 1 <= month <= 12 \
and 1 <= day <= 31 and 0 <= hour < 24 \
and 0 <= minute < 60 and 0 <= second < 60: # Looks like a valid date
print('explicit line joining')
隐示换行
users = [
{"username": "alex1", "userpasswd": "456"},
{"username": "alex2", "userpasswd": "456"},
{"username": "alex3", "userpasswd": "456"},
{"username": "alex4", "userpasswd": "456"},
{"username": "alex5", "userpasswd": "456"},
{"username": "alex6", "userpasswd": "456"},
]
四、用户输入
score = input("请输入你得成绩:")
if score > 90:
print("非常优秀")
elif score > 80:
print("优秀")
elif score >= 60:
print("合格")
else:
print("很遗憾,不及格")
五、数据类型
变量类型由声明时候得数据类型决定,变量可以指向同类型的不同数据值
1、数字
可以用于数学运算的类型
int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。因此一个"整数" 统称为:int 类型。
float(浮点型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。因此一个"整数" 统称为:int 类型。
float(浮点型)
浮点数用来处理实数,即带有小数的数字。
complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
2、布尔值
True False
3、字符串
有意义的一串符号,用引号(' or ")包括。常用功能如下:
- 移除空白
- 分割
- 长度
- 索引
- 切片
代码举例:
score = 90 # 整数
pi = 3.1415926 # 浮点数
my_name = " 秦始皇 " # 字符串
example = "alex is the best beautiful girl in my class."
#字符串功能:
#1.移除空白
print(my_name.strip()) #秦始皇
#2.分割
print(example.split(' ')) # ['alex', 'is', 'the', 'best', 'beautiful', 'girl', 'in', 'my', 'class.']
#3.长度
print(len(example)) # 44
#4.索引
print(example.index('the'))# 8
print(example[0]) # 'a'
#5.切片
print(my_name[2:]) # 始皇
print(example[5:-1]) # is the best beautiful girl in my class.
----------------------------------------------------------以上类型也称 基础数据类型--------------------------------------------------------------------
----------------------------------------------------------以下类型也称 高阶数据类型--------------------------------------------------------------------
4、列表
对基础或者高级数据类型做有序排列,并用[] 包括。基本功能如下:
- 索引
- 切片
- 追加
- 删除
- 长度
- 循环
- 包含
代码举例:
# 列表
"""
索引
切片
追加
删除
长度
循环
包含
"""
l1 = ['a', 'b', 'c']
l2 = list("hello,world!") # 创建列表
# print(l2) # ['h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd', '!']
# #1.索引
# print(l2[2]) # l
# #2.切片
# print(l2[4:-1:2]) # ['o', 'w', 'r', 'd']
# #3.追加
# l2.append("alex") # ['h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd', '!', 'alex']
# print(l2)
# 4.删除
# 4.1 头尾删除
l2.pop() # ['h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd'] 默认取最后一个
print(l2)
l2.pop(0) # ['e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd']
print(l2)
# 4.2 指定元素删除
l2.remove('e') # ['l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd']
l2.remove('l') # 找到第一个字符删除
del [l2[1]]
l2.remove(l2[1])
print(l2) # ['l', 'w', 'o', 'r', 'l', 'd']
# pop 用于删除头尾
# remove 可以指定元素删除
# del 不常用
# 5.长度
print(len(l2))
# 6. 循环
# 9*9 乘法表
for i in range(1, 10):
for j in range(1, i+1):
print('%d * %d = %d' % (i,j,i*j), end='\t')
print()
# 7.包含
if 'w' in l2:
print("l2含有w") # l2含有w
5、元组(不可变列表)
用()包括,其内容不可改变
#元组
point = (1,2)
line1 = ((1,2),(3,4)) # 用两个点表示一条线
for item in line1:
print(item[0],end=' ') # 1 3
6、字典(无序)
用{}包括,其内容使用键值对来表示
user1 = {"name": "alex"}
user2 = {"name": "peter"}
users = []
users.append(user1)
users.append(user2)
print(users) # [{'name': 'alex'}, {'name': 'peter'}]
for user in users:
print(user['name'],end=' ') # alex peter
6、集合(无序)
元素内容不能重复且无序,基本功能如下:
- 去重
- 交集
- 差集
- 并集
- 反向(对称)差集
# 集合
# l = [1, 3, 3, 2, 5, 7, 5]
# l = list(set(l))
# print(l) # [1, 2, 3, 5, 7]
# 运算操作
# 交集
set2 = {1,2,3,4,5}
set3= {3,4,5,6,7,8}
set4 = set2 & set3
set5 = set2.intersection(set3)
print(set4, set5) # {3, 4, 5} {3, 4, 5}
# 并集
set6 = set2 | set3
set7 = set2.union(set3)
print(set6, set7) # {1, 2, 3, 4, 5, 6, 7, 8} {1, 2, 3, 4, 5, 6, 7, 8}
# 差集
set8 = set2 - set3
set9 = set2.difference(set3)
print(set8, set9) # {1, 2} {1, 2} ,保留被减数 set2
# 子集
set3 = {1,2,3}
set4 = {1,2,3,4,5,6}
print(set3 < set4) # True
print(set3.issubset(set4)) # True
print(set4 > set3) # True
六、数据运算
算数运算:

比较运算:

赋值运算:

逻辑运算:

成员运算:

身份运算:

位运算:

运算符优先级

使用()既可以使代码逻辑清晰,又可避免优先级错误
七、if...else语句
每类编程语言必须有三类常用语句:顺序、条件、循环
score = input("请输入你得成绩:")
if score > 90:
print("非常优秀")
elif score > 80:
print("优秀")
elif score >= 60:
print("合格")
else:
print("很遗憾,不及格")
score = 90 # 整数
八、while循环
num = 1933
while True:
guess = int(input("猜个数字> "))
if guess > num:
print("太大了,再小点!")
elif guess < num:
print("太小了,再大点!")
else:
print("漂亮!byebyte!")
break
九、for循环
for i in range(10):
print('-'*i)
# -
# --
# ---
# ----
# -----
# ------
# -------
# --------
# ---------
# 进度条
import time
def bar(bar_width):
for i in range(bar_width+1):
time.sleep(0.1)
prt_str = '进度条:[{:<' + str(bar_width) + '}]{:.0%}'
print(prt_str.format('#'*i,i/bar_width))
if __name__ == '__main__':
bar(50)
# 问题:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱?
cock=1; hen=1; chicken=1 #默认数量为1只
while cock < 20:
hen = 1 #恢复默认值
while hen <= (100 - 5*cock)//3:
chicken = 100 - cock - hen
if chicken%3 == 0:
if (cock*5 + hen*3 + chicken/3) == 100:
#print("cock=" + str(cock) + "; hen=" + str(hen) + "; chicken=" + str(chicken))
print("公鸡 %s 只,母鸡 %s 只,小鸡 %s 只" %(cock,hen,chicken))
hen = hen + 1
cock = cock + 1
十、break and continue
break:退出本层循环,continue 直接进入下一轮循环
#取偶数
for i in range(1,10):
if i%2 == 1:
continue
print(i,end=' ') # 2 4 6 8
浙公网安备 33010602011771号