第一个程序
import random
computer = random.randint(1, 3)
print('电脑出的是:', computer)
i = int(input('你要出什么?1代表石头,2代表剪刀,3代表布\n'))
if i ==computer:
print('平局')
elif (computer == 1 and i == 3) or (computer == 2 and i == 1) or (computer == 3 and i == 2):
print('你赢了')
else:
print('你输了')
print(computer, '---', i)
1. 注释,#单行注释;"""......""" 和 '''......'''多行注释;
2. 标识符,第一个字符必须是字母或下划线;剩下的可以是字母、数字、下划线;大小写区分;
3. 关键字,Python系统保留的标识符,只有Python系统可以使用;import keyword,keyword.kwlist 查看所有关键字;
4. 变量,程序执行过程中可以发生变化的量。常量一旦被初始化就不可以再改变;
5. 输入和输出,输入:input() 当用户输入程序所需要的数据时,就会以字符串的形式返回;输出:print(value, sep=' ', end='\n');
sep:多个输出信息之间的分隔符,默认一个空格;
end:所有输出信息之后添加的符号,默认换行符;
print同时使用多个字符串:
print('The quick', 'brown fox', 'jumps over')
>>>The quick brown fox jumps over
遇到逗号“,”时就会输出一个空格。
字符串
'abc"dd"ef'
"'acc'd'12"
当字符串内含有单引号时,如果用单引号字符串,就会导致无法区分字符串内的单引号与字符串标志的单引号,就要使用转义字符串;如果用双引号字符串,则在字符串中直接书写单引号即可。
三引号字符串可以由多行组成;
'abcde'[1]
var='斗破苍穹x的点击量是'
var="10000000"
print(var1[0:8])
print(var2[0:7])
var1='Hello 斗破苍X!'
print("最初的名字是:", var1)
print('修改为:', var1[0:6] + '蜀山X!')
常用转义字符:\(在行尾时)续行符;\\ 反斜杠符号;\' 单引号;\n 换行;\t 横向制表符;\r 回车;\f 换页;
不想让转义字符生效 ,这事就要用r和R来定义原始字符串 。
如果想在字符串中输出反斜杠“\” ,就要使用"\ \"来实现。
print('听话\n聪明') # 普通换行
print("爱劳动\\漂亮") # 显示一个反斜杠
print("女汉子\'热情\'") # 显示单引号
print(r"\t\r") #r的功能是显示原始数据,也就是不用转义
格式化符号:
%c 格式化字符及其ASCII码;
%s 格式化字符串;
%d格式化整数;
%u格式化无符号整数;
%o格式化无符号八进制数;
%x格式化无符号十六进制数;
%X格式化无符号十六进制数;
%f格式化浮点数字,可指定小数点后的精度;
%e用科学计数法格式化浮点数;
%E用科学计数法格式化浮点数;
print("天赋异禀的少年武者%s,今年已经%d岁了!" % ('萧炎', 18))
数字类型
类型转换函数:
int( ) , float( ), complex()
str(x) 转换为字符串
repr(x)转换为表达式字符串
eval(str) 计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列s转换为一个元组
list(s)将序列s转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d必须是一个序列(key, value)元组
frozenset(s)转换为不可变集合
chr(x)将一个整数转换为一个字符
unichr(x)将一个整数转换为Unicode字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
运算符和表达式
算术运算符:+,-,*,/,%,**,//
比较运算符:==,!=,>, <, >=, <=
赋值运算符:=, +=, -=, *=, /=, %=, **=, //=
位运算符:&按位与,|按位或,^按位异或,~按位取反,<<左移动,>>右移动
逻辑运算符:and 与, or 或, not 非
列表
list1 = ['同学A', '同学B', 2001, 2002]
print('名字:',list1[0]) # 输出列表中第一个元素
print('出生年份', list1[2:3]) # 输出列表中第三个元素
car = ['手机','牛肉','衣服','运动鞋']
print(car)
car.insert(0, '雪糕')
print(car)
del car[0]
print(car)
list.insert(index, obj)
在列表的任意位置添加新元素,index插入的索引位置,obj将要插入列表中的元素;
del 删除元素
元组
元组内的数据元素不能发生改变。
tup1 = (12001, 94.56)
tup2 = ('三年级','小菜')
tup3 = tup1 + tup2 # 对元组进行连接组合
print(tup3)
del tup1 # 删除元组tup1
car = ['奥迪','宝马','奔驰','雷克萨斯']
print(len(car)) # 列表的长度
tuple2 = ('5000','4000','8000')
print('最畅销产品的销量是', max(tuple2)) # 元组中元素的最大值
tuple3 = ('5000','4000','8000')
print('最不畅销产品的销量是', min(tuple3)) # 元组中元素的最小值
list1 = ['京东','淘宝','天猫','拼多多']
tuple1 = tuple(list1) # 将列表的值赋值给元组
print('最受欢迎的电商平台是', tuple1)
len(tuple)计算元组元素的个数
max(tuple)返回元组中元素的最大值
min(tuple)返回元组中元素的最小值
字典
字典中的每个成员都是以“键:值”对的形式成对存在。
字典是无序的,在字典中通过键来访问成员。
每个key:value中的键(key)必须是唯一的、不可变的,但值(value)可以不唯一。
dict = {'Name':'同学A','Age':19,'Class':'外语'}
dict['Age'] = 20 #更新Age的值
dict['School'] = "山东大学" # 添加新的键值
print("dict['Age']:", dict["Age"])
print("dict['School']:", dict["School"])
print(dict)
del dict['Name'] # 删除键Name
print(dict)
favorite_launguages = {
'python':'1',
'C':'2',
'Ruby':'3',
'Java':'4'
}
print('下面是某人简历中擅长的编程语言:')
x = favorite_launguages.keys()
print(x)
dict.keys(),以列表的形式返回字典中所有的键。
条件语句
在多个代码语句中选择执行其中一行。
x = input('请输入你所能承受的车票价格(整数):')
x= int(x)
if x<0: # 如果x小于0
x = -x # 如果小于0,将x取负数
print(x)
A = 6999
B = 7999
if A>B: # 如果A大于B
print('商品A的价格要高一些')
else: # 如果A不大于B
print('商品B的价格要高一些')
for循环
for iterating_var in sequence:
statements
iterating_var表示循环变量
sequence遍历对象,通常是元组、列表和字典等
statements表示执行语句
import time
num_list = [1,2,3,4,5,6]
for i in num_list:
print(i)
time.sleep(1) # 暂停1秒
x = (int(input('请输入一个整数作为开始:')), int(input('请输入一个整数作为结尾:')))
x1 = min(x)
x2 = max(x)
for n in range(x1, x2+1):
for i in range(2, n-1):
if n % i == 0:
break
else:
print('你输入的', n, '是素数。')
for.....else语句中,else中的语句会在循环执行完(即for不是通过break跳出而中断的)的情况下执行。
while循环
while condition
statements
当condition为真时,将循环执行后面的语句,一直到条件为假时退出循环。
print('国庆假期的安排:')
count = 1
while count <=7:
print('假期第', count,'天:去XX玩')
count+=1
print('假期结束!')
while......else
若while循环不是由break语句终止,则会执行else语句块中的语句。
count = 0
while count<2:
print('你已经看电脑',count,'小时')
count +=1
else:
print('你已经连续看电脑', count, '小时了,停下来,休息一下!')
函数
def tpl_sum(T):
result = 0
for i in T:
result += i
return result
print('快递1的重量为:', tpl_sum([1,2,3,4]),'千克')
def printinfo(name, age=19):
print('名字:', name)
print('年龄:', age)
return
printinfo(age = 20, name='小白')
printinfo(name = 'Python大神')
def fun_bmi_upgrade(*person):
"""
:param person:可变参数,该参数中需要传递带3个元素的列表,分别为姓名,身高,体重
:return:
"""
for list_person in person:
for item in list_person:
person = item[0]
height = item[1]
weight = item[2]
print("\n" + '='*13, person, '='*13)
print('身高:'+str(height)+"米\t体重:"+str(weight)+"千克")
bmi = weight/(height*height)
print("BMI指数:"+str(bmi))
if bmi <18.5:
print("您的体重过轻")
if bmi>=18.5 and bmi<=23.9:
print('正常范围,注意保持')
if bmi>=24 and bmi<=26.9:
print('您的体重偏胖')
if bmi>=27 and bmi<=29.9:
print('您的体重肥胖')
if bmi>30:
print('重度肥胖')
# 函数调用
list_w = [('张三',1.70, 65),('李四',1.77,50),('王五',1.72,66)]
list_m = [('小王',1.80, 75),('小友',1.75,110)]
fun_bmi_upgrade(list_w,list_m)
如果参数名前加了一个星号*,则表示该参数是可变长参数。在调用该函数时,如果依次将所有的其他变量都赋予了值,剩下的参数将会收集在一个元组中,元组的名称就是前面带星号的参数名。
#first_day.py
def fun():
profit = 0
I = int(input('请输入利润(单位:万元):'))
if (I<=10):
profit = 0.1*I
elif (I<=20):
profit = 10*0.1 + (I-10)*0.075
elif (I<=40):
profit = 10*0.1+(20-10)*0.075+(I-20)*0.05
elif (I<=60):
profit = 10*0.1+(20-10)*0.075+(40-20)*0.05+(I-40)*0.03
elif (I<=100):
profit = 10*0.1+(20-10)*0.075+(40-20)*0.05+(60-40)*0.03+(I-60)*0.015
else:
profit = 10*0.1+(20-10)*0.075+(40-20)*0.05+(60-40)*0.03+(100-60)*0.015+(I-100)*0.01
print('你应得的奖金是:',profit,'万元')
# second_day.py
import first_day as fd
fd.fun()
通过import给first_day指定了别名fd,但该模块中所有函数的名称都没有变。当调用函数时使用fd.fun()。